gpt4 book ai didi

javascript - angularjs 1.2.6 的交叉源请求错误

转载 作者:行者123 更新时间:2023-11-30 17:29:14 24 4
gpt4 key购买 nike

我正在尝试向 http://battle.platform45.com/register 发出一个简单的 POST 请求 服务器设置为使用 JSON 进行响应。所以从命令行:

$ curl --data '{"name": "Connor", "email": "connorleech@gmail.com"}' http://battle.platform45.com/register

成功返回

{"id":"3118","x":1,"y":9}%

我尝试用 Angular 做同样的事情:

app.controller('BattleshipCtrl', function ($scope, $http) {
$scope.game = {}
$scope.newGame = function(name, email){
$http.post("http://battle.platform45.com/register", {
name: name,
email: email
}).success(function(data, status, headers, config){
console.log('Success')
})
}
});

用一个简单的 View :

<input type='text' ng-model='game.name'>
<input type='text' ng-model='game.email'>
<div class='btn btn-success' ng-click='newGame(game.name, game.email)'>New game</div>

当我尝试发出请求时出现错误:

OPTIONS http://battle.platform45.com/register 404 (Not Found) angular.js:7962
XMLHttpRequest cannot load http://battle.platform45.com/register. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://0.0.0.0:9000' is therefore not allowed access.

POST 请求如何通过 curl 而不是 angular?我该怎么做才能成功地使用 angular 发出请求?

最佳答案

我相信 battle.platform45 允许网络浏览器直接调用他们的服务器。默认情况下,不同域的网站无法访问其他网站的API资源。

根据 platform45,您必须使用 Rails 来创建游戏。所以我建议创建你自己的服务器,从他们的 API 服务器调用。然后使用您的 AngularJS 代码访问您的服务器。

我希望这张图能更好地说明它:

Battle.platform45 服务器 --(被调用)--> 你的服务器 --(被调用)--> 你的 HTML/Angular JS 代码

关于javascript - angularjs 1.2.6 的交叉源请求错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23535260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com