AngularJS 对 Web 服务的 $http 请求需要 CORS
AngularJS $http request to Web Service requires CORS
我正在编写需要访问 WebService(我无法控制)的服务 - 我想在我的应用程序中使用的 API。我已经在我的浏览器中访问了有问题的 url 并且登录成功,并且我可以看到我的访问令牌,但是当我尝试使用 $http
访问同一页面时,我在开发人员中遇到错误IE 中的控制台。
angular.module("app").factory("MyService", function($http){
var serviceUrl = "http://some-web-page/service.asmx/";
var logOn = function(username, password){
var getUrl = serviceUrl + "logOn?username="+username+"&password="+password;
$http.get(getUrl).then(
function successCallback(response){
console.log("Success");
console.log(response);
}, function errorCallback(response){
console.log("Error");
console.log(response);
}
);
};
return {
logOn: logOn
};
}).config(function($httpProvider){
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
在控制台中我得到
HTML1300: Navigation occurred.
File: home
HTML1503: Unexpected start tag.
File: home, Line: 5, Column: 1
SEC7118: XMLHttpRequest for http://some-web-page/service.asmx/logOn?username=username&password=password required Cross Origin Resource Sharing (CORS).
File: home
SEC7115: :visited and :link styles can only differ by colour. Some styles were not applied to :visited.
File: home
SEC7120: Origin http://localhost not found in Access-Control-Allow-Origin header.
File: home
SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
您不能从您的客户端向远程服务器进行查询(无论您使用的是哪种框架,它的底层都构建在 XMLHttpRequest 之上)除非他们在他们这边启用并实施 CORS(服务器托管在http://some-web-page/service.asmx/)。您可以向您的服务器发出请求,然后从您的服务器向远程服务器发出请求,但这并不总是一个理想的解决方案。
对于chrome和mozilla有一个叫cors的插件安装它,不会有cors之类的问题。
https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en
我正在编写需要访问 WebService(我无法控制)的服务 - 我想在我的应用程序中使用的 API。我已经在我的浏览器中访问了有问题的 url 并且登录成功,并且我可以看到我的访问令牌,但是当我尝试使用 $http
访问同一页面时,我在开发人员中遇到错误IE 中的控制台。
angular.module("app").factory("MyService", function($http){
var serviceUrl = "http://some-web-page/service.asmx/";
var logOn = function(username, password){
var getUrl = serviceUrl + "logOn?username="+username+"&password="+password;
$http.get(getUrl).then(
function successCallback(response){
console.log("Success");
console.log(response);
}, function errorCallback(response){
console.log("Error");
console.log(response);
}
);
};
return {
logOn: logOn
};
}).config(function($httpProvider){
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
在控制台中我得到
HTML1300: Navigation occurred.
File: home
HTML1503: Unexpected start tag.
File: home, Line: 5, Column: 1
SEC7118: XMLHttpRequest for http://some-web-page/service.asmx/logOn?username=username&password=password required Cross Origin Resource Sharing (CORS).
File: home
SEC7115: :visited and :link styles can only differ by colour. Some styles were not applied to :visited.
File: home
SEC7120: Origin http://localhost not found in Access-Control-Allow-Origin header.
File: home
SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
您不能从您的客户端向远程服务器进行查询(无论您使用的是哪种框架,它的底层都构建在 XMLHttpRequest 之上)除非他们在他们这边启用并实施 CORS(服务器托管在http://some-web-page/service.asmx/)。您可以向您的服务器发出请求,然后从您的服务器向远程服务器发出请求,但这并不总是一个理想的解决方案。
对于chrome和mozilla有一个叫cors的插件安装它,不会有cors之类的问题。 https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/ https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en