node.js - XMLHttpRequest 无法加载 http ://127. 0.0.1 :1337/. 请求的资源上不存在 'Access-Control-Allow-Origin' header

标签 node.js angularjs http xmlhttprequest cors

<分区>

我尝试使用 Angular.js 和本地运行的 Node.js 服务器从 HTML 页面发送和接收数据

app.controller("MainController", function MainController($scope, $http){		
	$scope.postIt = function() {
		//alert("posting...");
		$http.post('http://127.0.0.1:1337/', {msg:'hello from Angular.js!'})
		.success(function onSuccess(response){
	        console.log(response);
	        $scope.$apply(function(){
	            $scope.testData = JSON.parse(response);
	            console.log($scope.testData);
	        });
	    }).error(function onError(){
	        console.log("AJAX failed!");
	    });
    };
});	
<div id='content' 
     ng-app='MyTutorialApp' 
     ng-controller='MainController'>
	 <p>    
        <a ng-click="postIt()">
            Click here to load data.
        </a>
     </p>
</div>	
	<script src="bower_components/angular/angular.js" type="text/javascript"></script>
	<script src="app.js" type="text/javascript"></script>
	<script src="maincontroller.js" type="text/javascript"></script>

然后我得到错误:

 XMLHttpRequest cannot load http://127.0.0.1:1337/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

我尝试将 header 应用为 app.js

var app = angular.module('MyTutorialApp', [], function($httpProvider) {
      $httpProvider.defaults.headers.post['Access-Control-Allow-Origin'] = 'http://127.0.0.1:1337/';
});

但这并没有生效。

Node.js 代码

var http = require('http');
http.createServer(function handler(req, res) {
    console.log(req.method, req.url, req.httpVersion, req.headers);

    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello from Node.js\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

最佳答案

如果您使用 Angular 将 ajax 请求发送到本地 node.js 服务器,您应该将 access-control-allow-origin 放在接受 ajax 请求的目标服务器上,即本地主机,不要将其与 ajax 请求一起发布。

关于node.js - XMLHttpRequest 无法加载 http ://127. 0.0.1 :1337/. 请求的资源上不存在 'Access-Control-Allow-Origin' header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26464296/

相关文章:

javascript - 检测提交表单的 HTTP 204 状态

http - 使用 HTTP 方法 'OPTIONS' 进行自定义使用?

javascript - Mongoose:如何填充嵌套数组(深层)

javascript - POST 请求未收到 JSON 数据?

angularjs - Angular 指令在正确渲染时报告有关 SVG 属性的错误

javascript - 想知道我是否可以在不了解高级 JavaScript 的情况下开始学习 Angularjs?

c# - 我有一个 WebGet 方法,如何获取 xml 结果?

node.js - 如何在 Windows 中捕获 Electron 应用程序的标准输出流?

javascript - 无法更改默认 Electron 菜单上的元素

javascript - 在angularjs中页面加载后自动点击按钮