Я пытаюсь сделать запрос перекрестного домена для отправки/получения некоторых данных. Я не могу пройти мимо object error
. Прежде чем я получил ошибку No Transport
, но добавив Query.support.cors = true;
, эта проблема была решена.Ошибка объекта JSONP
var url = "http://CROSSDOMAINSERVER:PORT/Service1.svc/GetDataUsingDataContract";
$.ajax({
type: 'GET',
url: url,
data: 'tool=1&product=Some%20Product&details=9&bogus=should%20not%20pass%20validation',
datatype: "jsonp",
contentType: "application/json",
success: function (response) {
alert(response.data);
},
error: function (error) {
alert(error.statusText);
}
});
Если я ввожу URL в браузере:
http://CROSSDOMAINSERVER:PORT/Service1.svc/GetDataUsingDataContract?&tool=1&product=Some%20Product&details=9&bogus=should%20not%20pass%20validation
я получаю правильный ответ.
{"d":{"__type":"ClientSideData:#ProdResourceToolService","details":"9","product":"Some Product","result":"1","site":"Somewhere, SD","systime":"2\/6\/2013 2:50:20 PM","team":"0000000000","tool":"1","user":"username"}}
Когда я использую Ajax он не подает его в базу данных или возвращать данные, только object error
. Есть ли у кого-нибудь предложения о том, как обойти это?
Я также должен указать, удаляю ли я http://CROSSDOMAINSERVER:PORT/
от var url
при локальном отладке. Я получаю правильный ответ json. Почему кросс-домен не работает?
Этот ответ неверен, если вы действительно хотите сделать JSONP. Возвращаемое значение из JSONP должно быть JavaScript-кодом для вызова функции, а не просто JSON. – Pointy
Из последней строки вопроса, похоже, вы используете это из того же домена! Вы используете это из 'http: // localhost /'? –
jsonp - единственный способ сделать запрос на перекрестный домен, хотя верно? – atrueresistance