Ajax传输类型被url覆盖

时间:2015-05-06 00:55:45

标签: javascript php ajax laravel

我有一个通过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 requestpost路由的错误,但事实并非如此,因为ajax正在执行帖子调用,尽管附加了一些“获取数据”,等等重要的是,它正在使用localhost。有人对此有解释,我该如何解决?

修改

我通过添加get()路线解决了这个问题。所以这是我的新问题:

如何通过简单地传递包含get data的URL来覆盖ajax类型?

1 个答案:

答案 0 :(得分:0)

您要定位的网址是否位于其他网站中?如果是,那么它可能是CORS,因此您的网址调用需要返回以下标题

Access-Control-Allow-Origin:* Access-Control-Allow-Headers:Origin,SecurityPrivateKeyID 访问控制允许方法:GET,POST,PUT,DELETE,OPTIONS