我有一個用C#和WCF編寫的小型webservice。使用C#和WFC的跨域jQuery Ajax
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello Worlds";
}
}
我有一個小小的jQuery代碼;
$.support.cors = true;
$.ajax({
type: "POST",
url: "http://localhost:61614/Service1.asmx/HelloWorld",
data: '{}',
dataType: "json",
success: function (msg) {
alert(0);
}, error: function (a, b, c) { alert("Err:" + c);
}
});
這調用web服務。打電話沒有問題,但在退貨時出錯。
該webservice在一個應用程序,並且該網頁是它自己的簡單的HTML頁面。最終,HTML將在PhoneGap中使用。
我嘗試了各種各樣的東西。
在contentType: "application/json; charset=utf-8",
中添加會導致整個呼叫失敗。 使用dataType: 'jsonp"
會導致呼叫失敗。
基本上,上面調用WS但錯誤返回,這是奇怪的。
我的要求是我需要從web服務返回一個JSON對象,它必須在Safari中工作。
有沒有人有JSONP調用的完整示例代碼?
不知道它是否有幫助http://www.codeproject.com/Articles/186235/Making-a-JSONP-Call-to-a-WCF-Data-Service-using-da –
@griegs - 第一步,請確保http:// localhost:61614/Service1.asmx/HelloWorld?callback = test在您的瀏覽器中返回JavaScript函數,如下所示:'test({'say':'HelloWorld'});'。在你這樣做之前,jsonp請求將不會成功。您可以在地址欄中進行測試。希望這可以幫助。 – jmort253
有一點要澄清。一旦你上線,你是否100%肯定你在域名上提出請求?如果它是相同的域,那麼你可以返回沒有填充/包裝功能的JSON。 – jmort253