第三方提供了服务,我通过POST multipart / form-data访问它。我使用$ http angular来进行通话,但它只能在Chrome中使用。如果我使用IE它工作正常。如何以更好的方式修复/调试它? 使用高级REST客户端,我也能够得到响应。
万一有帮助,这里是http电话:
var fd = new FormData();
var blob = new Blob([file], {type:'text/xml'}); //just an xml file on the scope..
fd.append('xml', blob, 'myfile.xml');
$http({
url: "https://myurl.at.third-party/mypath",
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data',
'X-A-Custom-Header-They-Require': '<XMLData><User>myuser</User></XMLData>',
},
data: fd,
transformRequest: angular.identity
}).then(function(response) {
//do stuff
}, function(error) {
//handle error
});
在调用的IE中,我相信CORS在服务器上正确设置,但它是IE,所以谁知道呢? :)
如果我查看“Chrome网络”标签,我可以看到它首先进行OPTIONS调用,得到一个OK回复,但之后我没有看到POST或得到任何回复。
有谁知道我该怎么办?
谢谢!
答案 0 :(得分:0)
正如@Quentin所说,请查看Chrome开发工具中的控制台选项卡,查看网络选项卡并查看每个与CORS相关的标头值。
此外,您可以在此处了解CORS的工作原理:https://stackoverflow.com/a/25496072/827168这可以帮助您发现问题的根源。