2013-07-10 12 views
8

हाय मैंने वेब सेवा कॉल करने के लिए एक अजाक्स POST अनुरोध लागू किया है। यह हमेशा 200 ओके वापस लौटाता है लेकिन असफल घटना निष्पादित करता है मैंने बहुत सी चीजों की कोशिश की है लेकिन मुझे नहीं मिल रहा है कि मैं गलती कर रहा हूं। मैं अपना कोड यहां जोड़ रहा हूं। Fiddler प्रतिक्रिया सामग्री दिखाता है लेकिन अजाक्स सफलता की घटना निष्पादित नहीं कर रहा है।Jquery AJAX POST कॉल 200 स्थिति ठीक है लेकिन त्रुटि

<!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> 

मैं कोशिश की है डेटाप्रकार: 'पाठ' .... सर्वर से प्रतिक्रिया उचित 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 
      } 
     ] 
} 

अजाक्स त्रुटि: {"readyState": 0, "प्रतिक्रिया पाठ": "", "स्थिति": 0, "स्थिति पाठ": "त्रुटि"} है कि आप प्रयोग कर रहे हैं,

Headers - grab.by/on5Q 
Post - grab.by/on5U 
Response - grab.by/on5W 
Coockies - grab.by/on5Y 
+0

क्या आप JSON परिणाम पोस्ट कर सकते हैं? कभी-कभी समस्या प्रारूपों पर अलग-अलग प्रकार के उद्धरणों पर आधारित होती है। –

+0

कुछ और संदर्भ की आवश्यकता होगी या उत्तर केवल अनुमान लगाएंगे? जानकारी को एकीकृत करना (मेरे लिए): जेसन परिणाम, त्रुटि ऑब्जेक्ट/संदेश, जब आप 'डेटा टाइप' को 'टेक्स्ट' सेट करते हैं तो परिणाम यह मदद कर सकता है। –

+0

मैंने डेटा की जांच की, मैं बस कटौती कर सकता हूं, कि इस समस्या को सेवा की क्रॉसडोमेन नीति के कारण हो सकता है। यही एकमात्र संवेदना है जिसे मैं इस डेटा से निकाल सकता हूं। क्या आपने यह देखने के लिए clientaccesspolicy.xml को डाउनलोड करने का प्रयास किया है? यह एक लंबा शॉट है क्योंकि आपने कहा था कि आप फिडलर में परिणाम देखते हैं, लेकिन आप कभी नहीं जानते। मुझे उम्मीद है कि यह सूचक मदद कर सकता है। –

उत्तर

4

JSON प्रतिक्रिया मैं लगता है कि करने के लिए होता देखकर बिना, कि समस्या है:

मैं स्क्रीनशॉट जो फ़ायरबग से लिया जाता है द्वारा जोड़ा जा रहा कृपया यूआरएल tinygrab करने के लिए स्क्रीनशॉट को देखने के लिए जाना JSON के लिए गलत (या नहीं) उद्धरण। आपको डबल उद्धरण (संपत्ति के नाम और स्ट्रिंग मानों के लिए) का उपयोग करना चाहिए, या कम से कम जब मुझे उस समस्या का सामना करना पड़ा, तो डबल कोट्स ने इसे हल किया।

उदाहरण:

{"id":1,"name":"TOM"} 

मैं उम्मीद है कि इस मदद करता है।

+0

धन्यवाद लेकिन मैंने JSON के लिए डबल कोट्स का उपयोग किया है। –

+0

क्या आप अपने प्रश्न में JSON परिणाम पोस्ट कर सकते हैं? चूंकि आप डेटा टाइप टाइप करते समय काम करते हैं: टेक्स्ट और जब आप डेटा टाइप: जेसन का उपयोग नहीं करते हैं, तो इसे प्रतिक्रिया के साथ करना होगा। –

+0

मैंने डेटा टाइप किया है टाइप: टेक्स्ट लेकिन यह काम नहीं करता है –

2

ऐसे मित्रों के लिए जिनके पास ऐसी त्रुटि है, उस पृष्ठ पर JSON मान वापस करने का प्रयास करें जिसे आप अपना मान भेजते हैं।

मेरे मामले में, मैं localhost:8080/sender पृष्ठ पर हूं जो JSON डेटा को localhost:8110/receiver पृष्ठ पर भेजता है। रिसीवर पेज को डेटा प्राप्त करने के बाद, प्रेषक पृष्ठ पर {} जैसे कुछ वापस लौटाएं। अन्यथा, त्रुटि कॉलबैक को तब भी कहा जाता है जब सर्वर 200 HTTP कोड देता है।

संबंधित मुद्दे