2012-04-10 67 views
0

我使用以下代碼連接到供應商。運行時,我收回狀態碼0.使用Wireshark進行評估時,由於以下原因,我發現請求失敗:

錯誤:傳入消息具有意外的消息格式「原始」。預期的操作消息格式是'Xml','Json'。

我從文檔中看到dataType設置僅定義了傳入數據。如何將輸出設置爲JSON?

(請原諒原油編碼,這只是此刻殼)

var key   = "xxxxxx"; 
     $.ajax({ 
      type  : "POST", 
      dataType : "JSON", 
      url   : "http://url", 
      data  : { 
          "CityName":cty, 
          "FirmOrRecipient":name, 
          "LicenseKey":key, 
          "PrimaryAddressLine":s1, 
          "SecondaryAddressLine":s2, 
          "State":st, 
          "ZipCode":zip 
      }, 
      success  : function (data, status, xhr) { 
       var pretty = JSON.stringify(data, null, 4).replace(/ /g, '&nbsp;').replace(/\n/g, '<br />'); 
       $('div#results').html(pretty); 
      }, 
      error  : function(jqXHR, textStatus, errorThrown){ 
       if (jqXHR.status === 0) { 
        alert('ERROR: \n Failed to connect to PAV.\n Verify Network.'); 
       } else if (jqXHR.status == 404) { 
        alert('ERROR: \n Requested page not found. [404]'); 
       } else if (jqXHR.status == 500) { 
        alert('ERROR: \n Internal Server Error [500].'); 
       } else if (exception === 'parsererror') { 
        alert('ERROR: \n Requested JSON parse failed.'); 
       } else if (exception === 'timeout') { 
        alert('ERROR: \n Time out error.'); 
       } else if (exception === 'abort') { 
        alert('ERROR: \n Ajax request aborted.'); 
       } else { 
        alert('ERROR: \n Uncaught Error.\n' + jqXHR.responseText); 
       }      
      }, 
     }); 
+1

對於輸出爲JSON,你將不得不將JSON發送到服務器。目前,您正在向服務器發送表單參數。 – 2012-04-10 14:59:46

回答

0

嘗試設置您的內容類型。

$.ajax({ 
     type  : "POST", 
     dataType : "JSON", 
     contentType: 'application/json', 

我也會確保你發送有效的json數據(jsonlint.com)。

0

您服務器應該返回JSON格式輸出

如果你正在使用Spring框架,那麼你可以註釋的返回類型之前的方法

@ResponseBody 

所以春天將恢復其作爲JSON格式。

但是,如果您使用任何其他框架。請使用json jar文件並嘗試構建JSON輸出格式並返回相同的結果。只有當你的ajax模塊能夠讀取和處理