VamsiMadugula Ответов: 0

Окно.местоположение.href не работает...... И ajax-вызов не попадает в службу..


я новичок в C# , и я создал пример веб-сайта , который будет использовать сервис REST для входа в систему , для этого я вызываю сервис по вызову ajax в j query , поэтому у меня есть две проблемы, одна из которых заключается в том, что вызов ajax вообще не попадает в сервис, а другая-это код, который я написал для перемещения страницы (window.location.href="sample";) не работает , код лежит как под паром .

Что я уже пробовал:

$(документ).готово(функция () {

отладчик;


$("#ContentPlaceHolder1_btnSubmit").click(функция () {
отладчик;
var obj = новый объект();
об..Имя Пользователя = $('#ContentPlaceHolder1_txtUserid').вал();
об..Пароль = $('#ContentPlaceHolder1_txtPassword').вал();

отладчик;

$.Аякс({
тип: "почта",
URL-адрес: "http://192.168.124.69:447/api/AFSService/checkLogin/",
//заголовки: {
// "$Access-Control-Allow-Headers": "X-Requested-With"
//},
кроссдомен: ложь,
данные: obj,
асинхронные: ложные,
contentType: "application/json; charset=utf-8",
тип данных: 'json',
успех: функция (результат) {
отладчик;
alert('успех');
отладчик;

окно.location.replace = "http://localhost:50990/Jobs.aspx";

//вернуть в формате JSON(новый { URL-адрес : "http://localhost:50990/Jobs.aspx"})

//$json['redirect'] = "http://localhost:50990/Jobs.aspx";

//window.navigate("http://localhost:50990/Jobs.aspx")

//окно.местоположение.href="http://localhost:50990/Jobs.aspx";

// top.location.href= "D:\Home.html";
},

ошибка: функция (данные) {
отладчик;

предупреждение("введите соответствующие учетные данные");

отладчик;
//окно.местоположение.href = "http://localhost:50990/Jobs.aspx";
окно.местоположение.href = "http://localhost:50990/Jobs.aspx";

}

});
});

});

F-ES Sitecore

Используйте сетевые инструменты браузера, чтобы узнать, можете ли вы получить больше информации о том, что происходит

https://forums.asp.net/t/1982579.aspx?Using+the+browser+s+dev+tools+to+diagnose+ajax+problems+and+other+things+

VamsiMadugula

Спасибо за предложение , я попробовал это , и я отладил его с помощью отладки браузера , он доходил до вызова ajax , а затем непосредственно прыгал в сообщение об ошибке . , и код , который я написал , и код сервиса находятся на одном языке , так что нет необходимости использовать CORS, я не понимаю, что происходит, и он показывал ошибку 404, и я проверил ссылку в SOAP, и она работает

Richard Deeming

Язык, который вы использовали, не имеет значения. Если запущенная страница и служба, которую она пытается вызвать, находятся в разных источниках, то вам нужны заголовки CORS на сервере.

localhost:50990 и 192.168.124.69:447 бывают разного происхождения. Поэтому вам нужны заголовки CORS на 192.168.124.69:447.

VamsiMadugula

В соответствии с вашим предложением я использовал url:"http://cors.io/?http://192.168.124.69:447/api/AFSService/checkLogin/", вместо //url: "http://192.168.124.69:447/api/AFSService/checkLogin/", и я получил такую ошибку
jquery-1.10.2.min.js:23 варианта http://cors.io/?http://192.168.124.69:447/api/AFSService/checkLogin/ 403 (запрещено)
и я попробовал следующий код https://crossorigin.me/http://192.168.124.69:447/api/AFSService/checkLogin/ и сообщение об ошибке: https://crossorigin.me/http://192.168.124.69:447/api/AFSService/checkLogin/ net::ERR_CONNECTION_CLOSED

Richard Deeming

Во-первых, это, вероятно, должно быть https://cors.io/..., нет http://... - сайт должен перенаправить запрос на HTTPS, но лучше сделать первоначальный запрос безопасным в первую очередь.

Во-вторых, если вы пытаетесь сделать кросс-исходный запрос, используя данные аутентификации текущего пользователя, вы не могу используйте такой прокси-сервер. Вы должны сделать запрос напрямую, а это означает, что автор службы, которую вы вызываете, должен добавить правильные заголовки CORS.

Если они не будут добавлять заголовки CORS, то вам не разрешается делать то, что вы пытаетесь сделать.

VamsiMadugula

таким образом , без добавления заголовка CORS мы не можем получить доступ к сервису, верно?

Richard Deeming

Правильный.

VamsiMadugula

Спасибо за предложение , но без добавления заголовка CORS он работает в браузере IE , поэтому для Chrome я добавил заголовок CORS и теперь он работает , а также для перенаправления страницы вместо использования окна.местоположение.href я использовал window.open, и он также работает.

F-ES Sitecore

Как сказал Ричард, язык не имеет значения. Кроме того, заголовки должны быть в ответе, а не в запросе, поэтому они должны исходить из сервиса, а не из вашего js-кода.

0 Ответов