Javascript 为什么在jquery中成功调用ajax后不加载此函数?

Javascript 为什么在jquery中成功调用ajax后不加载此函数?,javascript,jquery,Javascript,Jquery,我用的是上个月用过的,但现在不行了。我已经复制了下面的相关代码 $(document).ready(function () { $.ajax({ type: "GET", url: "http://papermashup.com/demos/jquery-xml/books.xml", dataType: "xml", success: xmlParser }); alert("123"); }); fun

我用的是上个月用过的,但现在不行了。我已经复制了下面的相关代码

$(document).ready(function () {
    $.ajax({
        type: "GET",
        url: "http://papermashup.com/demos/jquery-xml/books.xml",
        dataType: "xml",
        success: xmlParser
    });
    alert("123");
});

function xmlParser(xml) {
    alert("456");

    $('#load').fadeOut();

    $(xml).find("Book").each(function () {

        $(".main").append('<div class="book"><div class="title">' + $(this).find("Title").text() + '</div><div class="description">' + $(this).find("Description").text() + '</div><div class="date">Published ' + $(this).find("Date").text() + '</div></div>');
        $(".book").fadeIn(1000);

    });

}
问题是在成功的ajax请求之后没有调用xmlParser函数。它显示123警报,但不是456警报。我做错了什么,还是教程做错了

我在这里包括了一个相关的JSFIDLE

为什么在jquery中成功调用ajax后不加载此函数

是的

从JavaScript错误控制台:

无法加载XMLHttpRequesthttp://papermashup.com/demos/jquery-xml/books.xml. 请求的资源上不存在“Access Control Allow Origin”标头。起源'http://fiddle.jshell.net因此,不允许访问

您的请求没有成功,至少在Ajax术语中是这样,严格来说是HTTP术语,但是您请求数据的站点没有授予浏览器从JSFIDLE向JavaScript提供数据的权限

为什么在jquery中成功调用ajax后不加载此函数

是的

从JavaScript错误控制台:

无法加载XMLHttpRequesthttp://papermashup.com/demos/jquery-xml/books.xml. 请求的资源上不存在“Access Control Allow Origin”标头。起源'http://fiddle.jshell.net因此,不允许访问


您的请求不成功,至少在Ajax术语中是这样,严格来说是HTTP术语,但是您请求数据的站点没有授予浏览器从JSFIDLE向JavaScript提供数据的权限。

修复。JSFIDLE没有这个功能,如果它不是如Royi所说的打字错误,那么您似乎面临跨域请求问题。您是否将xml文件保留在同一个域上?是的,我将文件保留在同一个域上,但仍然无法正常工作。已修复。JSFIDLE没有这个功能,如果它不是如Royi所说的打字错误,那么您似乎面临跨域请求问题。您是否将xml文件保留在同一个域上?是的,我将该文件保留在同一个域上,但仍然无法正常工作。但是,当我在本地调用xml文件时,没有出现CORS错误,而且仍然无法正常工作。@desbest-我只是复制了JSFiddle,将URL更改为books.xml,将books.xml更改为本地文件,运行了本地HTTP服务器,并对其进行了测试。工作正常。如果是同一个域,请使用GET请求中的相对路径。@HenriS。绝对或相对两者都有效,没有理由推荐相对…在许多项目中,如果在多个嵌套目录中运行相同的代码,相对将无法看到我的注释,但在本地调用xml文件时,我没有收到CORS错误,但它仍然不起作用。@desbest-我只是复制了JSFIDLE,将URL更改为books.xml和books.xml,并将其更改为本地文件,运行了一个本地HTTP服务器,并对其进行了测试。工作正常。如果是同一个域,请使用GET请求中的相对路径。@HenriS。绝对或相对两者都有效,没有理由推荐相对…在许多项目中,如果在多个嵌套目录中运行相同的代码,相对将无法看到我的评论