【问题标题】:ajax call not working when trying to send data to localhost:8000 from localhost尝试从 localhost 向 localhost:8000 发送数据时,ajax 调用不起作用
【发布时间】:2013-06-21 13:47:52
【问题描述】:

当我尝试从 php (localhost)django (localhost:8000) 进行 AJAX 调用时,会引发以下错误。

XMLHttpRequest 无法加载 http://localhost:8000/project/login/uid=bimt;token=KAMWMS151UWP67Q。 Access-Control-Allow-Origin 不允许来源http://localhost

$(document).on('click', '.login', function(event) {
    var username = $('#username').val();
    var token = $('#token').val();
    $.ajax({
       type: "POST",
       url: "http://localhost:8000/project/login/uid=" + username + ";token=" + token,
       success: function (html) {
         alert(html);
        }
     });
});

【问题讨论】:

    标签: php ajax django


    【解决方案1】:

    因为端口不一样,所以被认为是跨域请求。 您必须在请求的脚本中设置 Access-Control-Allow-Origin 标头。

    了解更多:

    http://enable-cors.org/server.html

    或者,专门针对 django:

    http://chase-seibert.github.io/blog/2012/01/27/using-access-control-allow-origin-to-make-cross-domain-post-requests-from-javsacript.html

    【讨论】:

      【解决方案2】:

      1) php 不发出 ajax 请求。 php 在服务器端执行; javascript在客户端执行,是js向服务器发出ajax请求。

      2) js 不允许您向与获取当前页面的主机不同的主机发出 ajax 请求。

      【讨论】:

        【解决方案3】:

        默认情况下,AJAX 不能发出跨域请求。

        你应该参考这个link

        【讨论】:

          【解决方案4】:

          试试,类似:

          $('#yourClickButtonId').click(function(){
              $.ajax({
                  type: 'POST',
                  url: 'project/login?uid='+$('#usename')+'&token='+$('#token'),
                  success: function(data){
                    alert(data);
                  }
              });
          });
          

          您应该只使用相对路径。

          【讨论】:

            【解决方案5】:

            我用我的内部 IP (192.168.1.x) 代替 localhost 并能够在其上调用 XMLHttpRequest。这应该可以解决问题,而不会弄乱跨源策略。

            【讨论】:

              猜你喜欢
              • 2019-11-11
              • 2016-04-01
              • 2013-09-05
              • 1970-01-01
              • 1970-01-01
              • 2014-01-16
              • 2022-01-11
              • 2021-09-24
              • 2022-12-29
              相关资源
              最近更新 更多