我正在开发一个应用程序,其中
HTML和
JavaScript块被传递到不同的客户端.我可以通过将以下内容添加到Web配置文件中来获取html / javascript块:
<system.webServer> <modules runAllManagedModulesForAllRequests="true" /> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="Content-Type" /> <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS" /> </customHeaders> </httpProtocol>
这对于做GETS非常有用.我遇到的问题是使用jQuery进行POSTs跨域:
$.ajax( { type: 'POST',url: url,crossDomain: true,data: JSON.stringify(data),dataType: 'json',contentType: 'application/json',success: function(responseData,textStatus,jqXHR) { alert('Success'); },error: function (responseData,errorThrown) { alert('POST Failed.'); } });
我会有很多客户消费我的应用程序(希望).我考虑使用代理,但是我没有客户端服务器的控制权,所以我无法安装一个httpHandler作为代理.
任何有关如何将不同客户端的json数据交给我的ASP.NET MVC应用程序的建议?
解决方法
我喜欢我的ajax电话,似乎工作(与上面的ajax调用比较):
$.ajax( { type: 'POST',data: data,jqXHR) { alert('success'); },errorThrown) { alert('POST Failed.'); } });
我删除了“contentType:’application / json’”和“JSON.stringify(…)”调用,我可以发布到服务器.
我不知道如何解释为什么它的工作.有任何想法吗?有什么安全问题吗?我正在我的笔记本电脑上这样做.我通过IIS 7设置了2个不同的网站.这会有所不同吗?