【问题标题】:Ajax transfer type gets overwriten by urlAjax 传输类型被 url 覆盖
【发布时间】:2015-07-15 22:32:19
【问题描述】:

我有一个通过分页器脚本生成 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);

            }

        })

在本地主机上加载下一页没有任何问题,但在服务器上我收到错误405 - Method Not Allowed

我正在使用 react.js 和 laravel 的组合。我这种链接的路线是:

post('pricing/{country}/{operation}/{page}', 'PricingController@getArticles');

我只知道从 get requestpost 路由的方法不允许错误,但情况并非如此,因为 ajax 正在执行 post 调用,尽管附加了一些“获取数据”,更重要的是,它正在工作在本地主机上。有人对此有解释吗?我该如何解决?

编辑

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

如何通过简单地传递包含获取数据的 url 来覆盖 ajax 类型?

【问题讨论】:

  • 不好意思我想问一下代码,success:function(){}.bind(this),你没有收到任何错误吗?
  • 发布答案并检查!

标签: javascript php ajax laravel


【解决方案1】:

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

访问控制允许来源:* 访问控制允许标头:来源、SecurityPrivateKeyID 访问控制允许方法:GET、POST、PUT、DELETE、OPTIONS

【讨论】:

  • 你能发布响应和请求站点与本地主机吗?
猜你喜欢
  • 2017-11-04
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 2019-02-27
相关资源
最近更新 更多