Angularjs http.get() Cross-Origin 请求被阻止
Angularjs http.get() Cross-Origin request is getting blocked
$http({
method: 'GET',
url: $scope.geoURL,
}).success( function(response) {
window.alert("3.");
$scope.resp = response;
window.alert("3."+response.status);
}).error(function (){
window.alert("-3");
});
导致以下问题:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://175.107.196.142/search/getPlaceInfoForLocation_v0.0.php?lat=33.541404&lng=73.146358. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
这不是浏览器的问题,当直接从浏览器调用时,可以完美地调用相同的 url。
您需要做的就是允许请求的来源,或允许所有源。将其添加到您的 API。API 需要将此标头与响应一起发送回。
<?php
header('Access-Control-Allow-Origin: *');
?>
但是,您还有其他一些选择。
- 最佳:CORS 标头(需要更改服务器(
- 代理服务器
- JSONP(需要服务器支持(
https://daveceddia.com/access-control-allow-origin-cors-errors-in-angular/
如果可以控制 API 服务,请添加以下 HTTP 标头:
Access-Control-Allow-Origin: *
另请参阅 http://enable-cors.org/
如果您无法控制 API 服务,则可以设置一个介于浏览器和 API 服务之间的代理。 例如,使用 NPM 包 https://www.npmjs.com/package/cors-anywhere
相关文章:
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- Ajax调用ERror Cross Origin REquest:在rails中自动完成大学列表
- Angularjs http.get() Cross-Origin 请求被阻止
- Cross Origin Chrome Extension
- Angular Cross Origin Request CORS失败,但节点http.get()成功返回
- Windows上的CouchDB说请求的资源上不存在“Access-Control-Allow-Origin”标头
- Cross Origin XMLHttpRequest iFrame "Mini Browser"
- 请求的资源上不存在Access Control Allow Origin标头.htaccess
- No 'Access-Control-Allow-Origin'请求的资源上存在标头'错误
- 请求失败"No 'Access-Control-Allow-Origin'header&quo
- Ajax: No 'Access-Control-Allow-Origin'标头存在于请求的资源上.起源
- Get with AngularJS Cross-Origin Request block
- 为什么jQuery在我的ajax请求中包含一个Origin头,以及如何从它们中删除它
- 选项请求成功,但仍然得到Access-Control-Allow-Origin错误
- Cross origin GET from local file://
- 获取请求到watson语音分析器api返回No 'Access-Control-Allow-Origin'
- CORS (Cross origin resource sharing)不被Fusion Tables支持
- 如何配置以Joomla为服务器的跨域资源共享(Cross Origin Resource Sharing, CORS)
- Chrome扩展中的Cross Origin XHR失败
- How to POST JavaScript to Cross Origin