当我尝试向外部API发出请求时,我遇到了CORS问题。 我试图将令牌添加到所有请求中:
var dApp = angular.module("app", []);
dApp.run(function($http) {
$http.defaults.headers.common.Authorization = 'APP token=TOKEN';
});
Authorization
字符串定义为API上定义的。
如果我检查请求的标头,我将无法看到我的字符串,返回代码为404 OPTIONS
。
我尝试用Postman做请求,但它确实有效。
它返回404,但控制台中的错误是:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://api.discogs.com/database/search?type=master&artist=The%20Strokes&format=album&callback=. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
如果我在网址上传递令牌,则可以使用,但只能使用GET和POST请求。
我已经阅读了问题Angular.js performs an options http request for CORS resource,但我找不到解决问题的方法
答案 0 :(得分:1)
您可以为FireFox执行此操作:
var xhr = new XMLHttpRequest({mozSystem: true});
但是,在我知道的Chrome中执行此操作的最佳方法是使用 - disable-web-security 运行该应用程序,这是不好的,因为除了它是不安全,你必须告诉你的用户禁用他们的网络安全,这不是一个好主意。
您可以按照以下方式执行此操作: