【问题标题】:jquery ajax not sending post data to php in google chromejquery ajax 未在 google chrome 中将发布数据发送到 php
【发布时间】:2012-10-24 04:55:16
【问题描述】:

我有这个 ajax 调用:

var data = "action=getCheckoutsXML&start="+start+"&end="+end;

        $.ajax({
            type: "POST",
            url: "includes/functionsMisc.php",
            data: data,
            dataType: 'xml',
            async: false,
            success: addCheckouts
        });

也用于:

var data = {
"action" : "getCheckoutsXML",
"start" : start,
"end" : end};

并且 PHP 没有收到 POST 数据 谷歌浏览器检查器给我一个状态 200

这在 Firefox 上运行正常。

我使用的是 jquery 1.7.1, 铬 24.0.1297, php 5.3.13.

在其他页面中有相同的 ajax 调用(不同的参数),它们在 chrome 中也可以正常工作

【问题讨论】:

  • 这包括/functionsMisc.php 您的 PHP 页面的正确路径在哪里?您可以在浏览器中访问它吗.. yoursite/includes/functionsMisc.php
  • 是的,它是有效的问题似乎只有 chrome,其他浏览器工作正常

标签: php jquery ajax google-chrome


【解决方案1】:

确保您的 PHP 返回一个有效的 XML。在网络选项卡下的 Chome 检查器中。您单击脚本“includes/functionsMisc.php”的请求,您应该会在“响应”选项卡下看到原始 XML 输出。

【讨论】:

  • 问题是 $_POST 对 functionsMisc.php 变空,因此它无法处理和发送 XML
【解决方案2】:

'检查你的 url .. 通常它应该以 / 开头 发布数据的正确方式是

   $.ajax({
        type: "POST",
        url: "/includes/functionsMisc.php",
        data: { action : "getCheckoutsXML", start : "start", end : "end"},
        dataType: 'xml',
        async: false,
        success: function(data) { alert(data); }
    });

我替换了addCheckouts来检查是否有成功响应。

【讨论】:

    【解决方案3】:

    尝试将此添加到您的初始化中,它对我有用:

    $.ajaxSetup({      
       cache: false,    
       data : null      
     });
    

    显然这可能与 Chrome 使用未初始化的变量等有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-09
      • 2016-11-02
      • 2017-07-12
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多