为什么在jquery中成功调用ajax后才加载此函数?
我在这里使用的教程 ,曾经在上个月工作,但现在不是。 我已复制下面的相关代码。
$(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('' + $(this).find("Title").text() + '' + $(this).find("Description").text() + 'Published ' + $(this).find("Date").text() + ''); $(".book").fadeIn(1000); }); }
问题是在成功的ajax请求之后没有调用xmlParser()函数。 它显示123警报但不显示456警报。 我做错了什么,或者教程错了吗?
我在这里包含了一个相关的jsfiddle。 http://jsfiddle.net/desbest/nwt3unxu/
为什么在jquery中成功调用ajax后才加载此函数?
确实如此。
从JavaScript错误控制台:
XMLHttpRequest无法加载
http://papermashup.com/demos/jquery-xml/books.xml
。 请求的资源上不存在“Access-Control-Allow-Origin
”标头。 因此,不允许来源“http://fiddle.jshell.net
”访问。
您的请求不成功 (至少在Ajax术语中,它是严格的HTTP术语,但您请求数据的站点未授予浏览器从JSFiddle向JavaScript提供数据的权限)。