Hi I have implemented one Ajax POST request to call web service. It always return 200 OK but execute failed event I have tried lot of things but I am not getting where I am doing mistake. I am adding my code here. Fiddler shows the response content but Ajax is not executing success event.
<!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>
I have tried dataType:'text'....response from server is in proper JSON format
Request JSON data :
{
"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"
}
Response JSON data:
{
"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 error: {"readyState":0,"responseText":"","status":0,"statusText":"error"}
I am adding screenshots which is taken from firebug please go to tinygrab url to see screenshot:
Headers - grab.by/on5Q
Post - grab.by/on5U
Response - grab.by/on5W
Coockies - grab.by/on5Y
Without seeing the JSON Response i would have to guess, that the Problem is, that you are using the Wrong(or no) Quotes for the JSON. You must use double Quotes(for property names and string values), or at least when i had that problem, the double quotes solved it.
Example:
{"id":1,"name":"TOM"}
i hope this helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With