Привет, я внедрил один запрос Ajax POST для вызова веб-сервиса. Он всегда возвращает 200 OK, но выполняет неудачное событие. Я пробовал много вещей, но я не понимаю, где я ошибаюсь. Я добавляю свой код здесь. Fiddler показывает контент ответа, но Ajax не выполняет событие успеха.JQuery AJAX POST call return 200 status OK, но ошибка
<!DOCTYPE html>
<html><head>
<script src="http://code.jquery.com/jquery-1.7.1.min.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
$.ajax({
type: "POST",
url: url,
data: values,
dataType: 'json',
cache: false,
success: function (result) {
alert("success:"+result);
},
error:function (error) {
alert("error"+error);
}
});
</script>
</body>
</html>
Я попытался DATATYPE: 'текст' .... ответ от сервера в соответствующем формате JSON
запрос JSON данные:
{
"search": {
"params_attributes": {
"adults": "1",
"children": "0",
"depart_date": "2013-07-10",
"destination_name": "OMS",
"direct": "0",
"infants": "0",
"origin_name": "KUL",
"range": "0",
"trip_class": "0"
}
},
"signature": "XXXXXXXX",
"marker": "XXX"
}
Ответ JSON данные:
{
"search_id":"66",
"metadata" : {},
"tickets" : [
{
"native_prices":{"7":"5500.0", "6":"5680.0", "3":"5657.0"},
"order_urls":{"7":"1","6":"557","3":"906"},
"direct_flights":[
{
"number":"1837",
"airline":"FV",
"departure":"1294037100",
"arrival":"1294041900",
"duration":"80",
"delay":"0",
"origin":"DME",
"destination":"LED",
"aircraft":"Airbus A319"
}
],
"return_flights":[
{
"number":"1858",
"airline":"FV",
"departure":"1295503800",
"arrival":"1295508600",
"duration":"80",
"delay":"0",
"origin":"LED",
"destination":"DME",
"aircraft":"Airbus A320"
}
]
}
],
"airlines": {
"AB": {
"alliance_name": null,
"average_rate": 3.84,
"deeplink_id": 18,
"homepage_id": "4ec0ff7b9f1c2760af0049d7",
"id": 35,
"name": "airberlin",
"rates": 377
},
"AF": {
"alliance_name": "SkyTeam",
"average_rate": 2.89,
"id": 48,
"name": "Air France",
"rates": 292
}
},
"airports":{
"ALA": {
"average_rate": 3.66,
"city": "\u0410\u043b\u043c\u0430\u0442\u044b",
"country": "\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d",
"name": "\u0410\u043b\u043c\u0430\u0442\u044b",
"rates": 60,
"time_zone": "Asia/Almaty"
},
"AMM": {
"average_rate": 3.42,
"city": "\u0410\u043c\u043c\u0430\u043d",
"country": "\u0418\u043e\u0440\u0434\u0430\u043d\u0438\u044f",
"name": "Queen Alia International",
"rates": 5,
"time_zone": "Asia/Amman"
}
},
"currency_rates":{"eur":"41.3564", "uah":"3.72911"},
"gates_info": [
{
"average_rate": 4.34,
"currency_code": "rub",
"id": 1,
"is_airline": false,
"label": "Nabortu",
"mobile_version": false,
"payment_methods": [
"bank",
"yandex_money",
"web_money",
"terminal",
"card",
"svyaznoy",
"euroset"
],
"rates": 336
},
{
"average_rate": 4.34,
"currency_code": "rub",
"id": 2,
"is_airline": false,
"label": "Davs",
"mobile_version": false,
"payment_methods": [
"cash",
"bank",
"yandex_money",
"web_money",
"terminal",
"card",
"exp",
"euroset"
],
"rates": 416
}
]
}
Ошибка Ajax: {"readyState": 0, "responseText": "", "status": 0, "statusText": "error"}
Я добавляю скриншоты, которые взяты из поджигатель пожалуйста, перейдите на tinygrab URL, чтобы увидеть скриншот:
Headers - grab.by/on5Q
Post - grab.by/on5U
Response - grab.by/on5W
Coockies - grab.by/on5Y
Не могли бы вы опубликовать результат JSON? Иногда проблема заключается в том, что различные типы кавычек различаются. –
Возможно, потребуется больше контекста или ответы будут только предположениями? Interessing Information (для меня): результат Json, объект ошибки/сообщение, результат, когда вы устанавливаете 'dataType'' для текста, это может помочь. –
Я проверил данные, buit я просто могу вывести, что эта проблема может возникнуть из-за политики crossdomain службы. Это единственный вопрос, который я могу сделать из этих данных. вы попробовали загрузить clientaccesspolicy.xml, чтобы узнать, что он говорит? Это длинный выстрел, так как вы сказали, что видите результат в скрипаче, но вы никогда не знаете. Надеюсь, этот указатель может помочь. –