Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE9中的Ajax/jQuery/PHP,而不是IE8或更低版本_Php_Jquery_Ajax - Fatal编程技术网

IE9中的Ajax/jQuery/PHP,而不是IE8或更低版本

IE9中的Ajax/jQuery/PHP,而不是IE8或更低版本,php,jquery,ajax,Php,Jquery,Ajax,我的jQuery/AJAX脚本发布到一个php文件,希望返回XML。当我打印数据时,如果我得到了所有返回的html源代码,并且xml没有在IE8或更少版本中正确解析,那么我就会打印。该代码适用于IE9和所有其他浏览器。如果有人对我的问题有什么建议或解决办法 jQuery: $.post("load-content/", {type: "POST", img: placeholder, dataType: "XML", selection: $(this).html()}, function(xm

我的jQuery/AJAX脚本发布到一个php文件,希望返回XML。当我打印数据时,如果我得到了所有返回的html源代码,并且xml没有在IE8或更少版本中正确解析,那么我就会打印。该代码适用于IE9和所有其他浏览器。如果有人对我的问题有什么建议或解决办法

jQuery:

$.post("load-content/", {type: "POST", img: placeholder, dataType: "XML", selection: $(this).html()}, function(xml)  {
                // format and output result
                // alert(placeholder+' && '+$(this).html());
                nshow = $("content", xml).text() ;
                $("div p.p2").html(
                    $("content", xml).text() 
                );
                alert("HERE IE 9+ "+xml.length);
            });
php:

if(isset($请求[“img”])和&isset($请求[“选择”])){
$xml='test';
echo$xml;

*仅供参考此代码正在Zencart文件夹中运行

事实上,我认为您的问题在于进行ajax调用本身。您正在使用,但您正在提供选项哈希,就好像它是一样。两者是不同的

将url、数据、回调和响应类型作为参数。您提供的哈希值与您将提供的哈希值类似,作为第二个参数,但不是它想要的

如果您要使用它,应该如下所示:

$.post("load-content/", {img: placeholder, selction: whatever}, function(), 'xml');
此外,调用的内容也不明确…
可能不存在,除非它位于事件处理程序或
jQuery中。因此使用
选择:$(this).html()
的每次
迭代可能没有意义


您是否尝试过为您的响应设置适当的标题并立即退出

 if(isset($_REQUEST["img"]) && isset($_REQUEST["selection"])) {
      header('Content-type: application/xml');
      $xml='<ratings><content>test</content></ratings>';
      echo $xml;
      exit(0);
 }
if(isset($请求[“img”])和&isset($请求[“选择”])){
标题('Content-type:application/xml');
$xml='test';
echo$xml;
出口(0);
}
已解决。
这里有两个问题

  • 正如上面的回答所示,标题有问题
  • 正如上面的答案所暗示的,数据类型有问题……旧IE浏览器的代码应该是

    $.post("/load-content/", {type: "POST", img: showcase, menuv: aname}, function(response) { ...
    

  • 我认为问题在于,标题包含在另一个文件中,我正在尝试重新运行xml。因此,如果我更改了数据类型,那么我将获得所有信息,但我需要从响应中删除标题,或者从页面中删除标题,然后使用上面的xml标题。知道如何从php fi中删除标题吗le还是AJAX响应?最简单的解决方案可能是使用jQuery
    text
    数据类型,然后在回调中手动创建一个xml dom……否则您将不得不研究ZenCart文档,看看是否有有效的方法覆盖它要发送的头。因为它的ZenCart我怀疑这是否可行这意味着您需要修改核心文件,这可能不是一个好主意。我收回这一点…您正在使用worng参数来
    $。post
    查看我的更新。
    $.post("/load-content/", {type: "POST", img: showcase, menuv: aname}, function(response) { ...