我有一个通过paginator脚本生成url的ajax调用:
"http://192.168.1.23:8000/pricing/0/999/null/?page=9"
在服务器上生成了相同的链接:
"https://xxx.xxx.xxx/pricing/0/999/null/?page=9
链接将传递给此ajax调用,在本例中设置为data
:
$.ajax({
url: (data) ? data : '/pricing/' + this.state.country + '/' + this.state.operation + '/' + this.state.optional,
type: 'POST',
data: {
_token: window.token
},
success: function (e) {
$('#loader-wrapper').fadeOut();
this.setState({
paginator: true,
menuActive: false
});
this.handleArticles(e);
}.bind(this),
error: function (err) { alert(err);
console.log(err);
}
})
在localhost上加载下一页没有任何问题,但在服务器上我收到错误405 - Method Not Allowed
。
我正在使用react.js和laravel的组合。我这种链接的路线是:
post('pricing/{country}/{operation}/{page}', 'PricingController@getArticles');
我只知道方法不允许从get request
到post
路由的错误,但事实并非如此,因为ajax正在执行帖子调用,尽管附加了一些“获取数据”,等等重要的是,它正在使用localhost。有人对此有解释,我该如何解决?
修改
我通过添加get()
路线解决了这个问题。所以这是我的新问题:
如何通过简单地传递包含get data的URL来覆盖ajax类型?
答案 0 :(得分:0)
您要定位的网址是否位于其他网站中?如果是,那么它可能是CORS,因此您的网址调用需要返回以下标题
Access-Control-Allow-Origin:* Access-Control-Allow-Headers:Origin,SecurityPrivateKeyID 访问控制允许方法:GET,POST,PUT,DELETE,OPTIONS