我有一个JSON WCF服务,我写了一些javascript来访问这样的服务,
function stuffClick2() {
$.ajax({
url: "http://192.168.54.98/JsonWCFService/Service1.svc/Post",
type: "POST",
contentType: "application/json",
data: '{"x":"1","y":"2","message":"The answer is: "}',
dataType: "html",
success: function(data) { $('body').html(data); }
});
}
Run Code Online (Sandbox Code Playgroud)
我写了一个HTML页面,里面有上面的javascript.HTML页面使用IIS提供.
当我在PC上使用chrome访问HTML页面时,我看到这些操作按此顺序发送到WCF JSON服务,
OPTIONS /JsonWCFService/Service1.svc/Post HTTP/1.1
POST /JsonWCFService/Service1.svc/Post HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
OPTIONS以前失败了,但我让OPTIONS调用返回这个标题然后使它工作,
Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)
但我上面定义的回调不起作用,
success: function(data) { $('body').html(data); }
Run Code Online (Sandbox Code Playgroud)
我知道WCF服务已经返回了这样的东西,
<b> The answer is 3 </b>
Run Code Online (Sandbox Code Playgroud)
但是当调用回调时,data的值是一个空字符串.
当我在不同的浏览器(IE)中运行html页面时,它只会导致POST调用,而不是OPTIONS调用,那么它可以工作.我注意到IE警告我它存在安全隐患,并询问我是否要继续.
当我尝试使用WCF为我正在制作的移动HTML应用程序实现CORS时,我遇到了这个问题.OPTIONS是一个预检请求,用于在调用方法之前查看方法是否可用.
这将是你的问题:
我不确定您是否使用CORS,但主体将是相同的,因为它发送OPTIONS请求然后发送POST请求.
| 归档时间: |
|
| 查看次数: |
4651 次 |
| 最近记录: |