2012-10-25 13 views
0

我使由下面的代碼使得使用JSON數據類型跨域調用

$.ajax({ url: "http://localhost:4417/TravelMirchiB2C/Microsite.asmx/SaveFromMicrosite", 
    data: { x: JSON.stringify(data) }, 
    contentType: "application/json; charset=utf-8", 
     dataType: "jsonp", 
     success: function(json) { 
     if (json.d="true") 
      alert("Saved Successfully"); 
     }, 
     error: function() { 
      alert("Hit error fn!"); 
     } 
    }); 

打在服務器端跨域我使用asp.net處理程序(ashx的)頁面,頁面的.cs在我的方法(我必須給他打電話)。但是當我從瀏覽器傳遞一個字符串時,它工作正常,但失敗時,我傳遞了json類型的數據

public string SaveFromMicrosite(PackageQueries x)-------- It不是

public string SaveFromMicrosite(string x)--------------- It Works

PackageQueries是一類

+0

什麼「失敗」?順便說一句JSON.stringify的結果是字符串,它可能是一個很好的ide顯示有什麼區別。 –

+0

@Alexei Levenkov =我編輯問題請看最後一行 – Vishwajeet

回答

0

對於這種方法的工作:

public string SaveFromMicrosite(PackageQueries x) 
{ 
    ... 
} 

你應該張貼您的整個數據作爲JSON:

$.ajax({ 
    ... 
    data: JSON.stringify({ x: data }), 
    ... 
}); 

否則jQuery.ajax將您的數據編碼爲application/x-www-form-urlencoded格式有一個鍵x哪個值將是您的JSON和ASP.NET不會自動決定。