$ .ajax只在Safari中工作 - 可能是请求的东西

时间:2011-09-15 13:01:54

标签: php javascript jquery ajax request

以下脚本似乎仅适用于Safari

function getPictures() {
    $.ajax({
            type: "GET",
            url: "getimages.php",
            dataType: "xml",
            success: function(xml) {
                alert('success');
            }

    });
}

getimages.php通过PHP动态创建xml内容。

我读到这个问题可能与需要请求有关。我从未以任何方式使用过Ajax,也没有时间做研究。

如何更改此脚本以使其在尽可能多的浏览器中运行?

PHP文件的XML输出如下所示

    <image url="MY_IMAGE_URL_1.jpg" number="1">
    <image url="MY_IMAGE_URL_2.jpg" number="2">
    <image url="MY_IMAGE_URL_3.jpg" number="3">
    <image url="MY_IMAGE_URL_4.jpg" number="4">

我原以为在加载文件时会调用成功函数而不管它的内容是什么

2 个答案:

答案 0 :(得分:4)

您的XML格式不正确。

添加/以关闭代码。

<image url="MY_IMAGE_URL_1.jpg" number="1" />
<image url="MY_IMAGE_URL_2.jpg" number="2" />
<image url="MY_IMAGE_URL_3.jpg" number="3" />
<image url="MY_IMAGE_URL_4.jpg" number="4" />

答案 1 :(得分:3)

首先,您应该在AJAX请求中添加error事件处理程序:

function getPictures() {
    $.ajax({
        type: "GET",
        url: "getimages.php",
        dataType: "xml",
        success: function(xml) {
            alert('success');
        },
        error: function(req, status) {
            alert(status);
        }
    });
}

其次,您需要关闭XML中的所有元素(以/>结尾),并将它们包含在包含{@ 3}}的元素中:

<images>
    <image url="MY_IMAGE_URL_1.jpg" number="1" />
    <image url="MY_IMAGE_URL_2.jpg" number="2" />
    <image url="MY_IMAGE_URL_3.jpg" number="3" />
    <image url="MY_IMAGE_URL_4.jpg" number="4" />
</images>