我可以解决这个问题。这样做的几种方法-我记下了我尝试过的所有内容及其参考。
回答问题1。
'Why is localhost or my machineName considered to be a cross-domain request?'
正如@charlietfl提到的,我在这里进行了研究:浏览器也将不同的端口或子域视为跨域。
回答Ques2。
'Are there any changes required to do at my service end to enable this behavior?'
是!服务器端本身需要进行更改。服务器应使用以下命令响应请求
访问控制允许来源:*
标头。在这里*可以替换为请求标头本身或根据您的应用程序要求。如果您使用的是WCF
REST服务,则此处的优秀博客介绍了解决方法。您需要在每个服务方法中添加以下行(标题),以在服务方法中启用CORS。
WebOperationContext.Current.OutgoingResponse.Headers.Add(
“ Access-Control-Allow-Origin”,“ *”);
WebOperationContext.Current.OutgoingResponse.Headers.Add(
“ Access-Control-Allow-Methods”,“ POST”);
WebOperationContext.Current.OutgoingResponse.Headers.Add(
“ Access-Control-Allow-Headers”,“ Content-Type,Accept”);
此处的规范对于在服务器/客户端上启用CORS非常有帮助。
回答问题3。
JSONP通常适用于GET请求,不是最可取的用法,最建议启用CORS。(我没有对此领域进行过很多探讨,但此处的Wiki和stackoverflow文章具有很强的描述性)。
除此之外,出于测试目的,此处提供了不错的chrome
扩展名可能会有所帮助。它可以用来确保应用程序存在CORS问题。



