我有一個硬性的Microsoft Visual Studio 2008,我想從您的Web服務跨域查詢到WCF服務,但它不起作用。對WCF的跨域AJAX請求
網頁上Ajax代碼:
$.ajax (
url: "http:/сите.com/ApplicationController.svc/HelloPost/"
type: "POST",
dataType: "json",
contentType: "application/json",
success: function (data) {
alert (data);
},
error: function (jqXHR, textStatus, errorThrown) {
alert (jqXHR textStatus errorThrown);<br/>
}
});
但我的WCF服務:
[OperationContract]
[WebInvoke (Method = "POST", UriTemplate = "HelloPost /", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
[JSONPBehavior (callback = "callback")]
String GetPostHello (Stream data);
public String GetPostHello (Stream data)
{
HttpContext.Current.Response.AddHeader ("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader ("Access-Control-Allow-Methods", "GET, POST");
HttpContext.Current.Response.AddHeader ("Access-Control-Allow-Headers", "Content-Type, Accept");
HttpContext.Current.Response.AddHeader ("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
return null;
}
return "Hello";
}
當它工作的域中的GET請求,但儘量做到POST請求返回這個頭:
Content-Type application/json Accept application/json, text/javascript, */*;q=0.01
幫助,可能是什麼問題!謝謝!
不幸的是,您的示例未在Microsoft Visual Studio 2008中運行。 消息: 所選文件是解決方案文件,但由此應用程序的較新版本創建,無法打開。 是否有可能在Microsoft Visual Studio 2008中創建這樣的應用程序? – 2013-04-10 07:30:28
您應該可以在VS2008中創建一個新的解決方案,並使用與我擁有的項目相同的項目,然後像原始項目中那樣添加這些文件。 – carlosfigueira 2013-04-10 16:14:04