我是REST的新手,所以如果我错过了一些明显的东西,请耐心等待。 任何指针都会非常感激,因为我有点迷失。
我需要将一些数据发布到以下REST服务:https://api.dotmailer.com/来自我的网络应用程序https://myapp.com/。
在测试期间,我能够从本地电脑上发布数据。
但是,只要我在远程服务器上将更新的应用程序发布到https://myapp.com/,我就无法再发布任何数据了。
我在下面列出了监控流程的结果:
CALLS MADE FROM REMOTE SERVER
----------
POST /bla.aspx HTTP/1.1
Host: myapp.com
Connection: keep-alive
Content-Length: 10660
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: https://myapp.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Content-Type: application/x-www-form-urlencoded
DNT: 1
Referer: https://myapp.com/bla.aspx
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,it;q=0.6
Cookie: ASP.NET_SessionId=xxx; Myapp=xxx; GUID=xxx
CALLS MADE FROM LOCAL PC
----------
POST /bla.aspx HTTP/1.1
Host: localhost:xxx
Connection: keep-alive
Content-Length: 10656
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://localhost:60675
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Content-Type: application/x-www-form-urlencoded
DNT: 1
Referer: http://localhost:xxx/bla.aspx
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,it;q=0.6
Cookie: __eqtUser=xxx; ASP.NET_SessionId=xxx; Myapp=xxx; GUID=xxx
我相信第3点显示原因是远程服务器上的某些设置。
有谁知道它可能是什么?还是我完全偏离轨道?
我在接听电话的接收端与开发人员进行了交谈,他们可以监控传入的流量。
他可以看到我的本地电话,但不能看到https://myapp.com提交的电话。
在回复gmlime回复时,我已将以下内容添加到myapp.com web.config文件中,但没有帮助。
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
我应该把它放在层次结构的更高级别吗?
答案 0 :(得分:0)
确保将其添加到响应中:
YourAddHeaderMethod("Access-Control-Allow-Origin", "*");
许多服务器拒绝从其他域发布,并可以终止连接。您可以从w3 docs for Access-Conrol-Allow-Origin和Mozzilla封面some scenarios了解有关它的更多信息。您可能需要与服务器管理员核实以排除跨域问题。