我准备在几周内向一群约100名软件开发人员演示Lightswitch 遇到了麻烦。
我有一个VS2012解决方案,有两个项目:
我的问题是当我尝试运行解决方案并执行AJAX命令时,我收到以下错误:
XMLHttpRequest cannot load http://localhost:37650/ApplicationData.svc/MyEntities. Origin
http://localhost:53408 is not allowed by Access-Control-Allow-Origin.
在谷歌搜索了一段时间之后,我发现了这个看起来很有希望的建议:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
但它没有解决问题。有什么想法吗?
谢谢!
答案 0 :(得分:1)
您可能需要添加:
headers: { "If-Match": " *" }
请参阅:
仅使用.Html页面的完整CRUD DataJs和KnockoutJs LightSwitch示例 http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/128/A-Full-CRUD-DataJs-and-KnockoutJs-LightSwitch-Example-Using-Only-An-Html-Page.aspx
答案 1 :(得分:1)
我解决了同样的问题:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Max-Age" value="3600" />
<add name="Access-Control-Allow-Headers" value="Content-Type, Accept, MaxDataServiceVersion" />
<add name="Access-Control-Allow-Methods" value="PUT, POST, GET, DELETE, MERGE, OPTIONS" />
</customHeaders>
</httpProtocol>
答案 2 :(得分:0)
我一直在遇到同样的问题,只有我的是我正在创建一个不是Web应用程序的HTML5 JQuery Mobile应用程序。该应用程序是基于JQuery的应用程序,我将通过PhoneGap运行。我的问题是,当我从移动应用程序拨打电话时,我会遇到相同的跨域问题。
您使用什么浏览器进行测试?我正在使用Chrome,因为初始的选项请求,我得到了问题(请参阅http://www.w3.org/TR/cors/)。我尝试过一些可能的解决方案,比如更新配置文件等,但无济于事。
我对cat的下一步将是通过创建一个IHttpHandler拦截初始Options请求,我可以将其作为属性应用于我正在使用的WCF服务(我是否提到我在Server项目中创建了自定义WCF服务) LightSwitch解决方案?)。
我会告诉你......
保