跨域调用 WCF 时出现问题
Issue with calling WCF cross domain
我正在尝试通过http使用javascript跨域调用WCF服务。
我已经将访问控制允许源标头添加到了我想调用的操作中,如下所示:
WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*");
但是,当我使用 jquery.ajax 发帖时,我得到:
Origin http://server/ is not allowed by Access-Control-Allow-Origin.
更糟糕的是,它甚至发生在我的本地机器上:
XMLHttpRequest cannot load http://localhost:8201/wcfservice. Origin http://localhost/ is not allowed by Access-Control-Allow-Origin. (observed in Chrome)
我做错了什么根本吗?
您正在做的事情对于 GET 请求(在启用 CORS 的浏览器中)很好 - 请求被发送到服务,如果服务具有访问控制允许源标头,浏览器将允许它返回到应用程序)。
对于"不安全"的请求(即那些可能在服务中引起副作用的请求,例如 POST、PUT 和 DELETE),浏览器首先发送预检请求,即"询问"服务是否可以接受跨域请求的选项请求。由于您的操作仅响应 POST 请求,因此它不会响应该请求,浏览器将阻止它。
我写了一篇关于在 WCF 中实现 CORS 支持的一种方法的文章,你可以在 http://blogs.msdn.com/b/carlosfigueira/archive/2012/05/15/implementing-cors-support-in-wcf.aspx 上找到它。基本上,除了"正常"请求之外,您还需要处理 OPTIONS 请求。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 如何使用WCF服务和javascript表单post上传.doc文件
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- 如何消除代码中的未定义和其他问题
- JavaScript代码问题:我正在将对象转换为数组
- 跨域调用 WCF 时出现问题
- JSONP 从 WCF 服务获取缓存响应时出现问题
- 从AngularJS向WCF服务发布内容类型的问题