Javascript jqueryajax失败了
我似乎无法理解这个Ajax查询失败的原因,打开控制台并查看网络,我看到有一个200的响应,我的浏览器上的预览选项卡显示了我期望的数据,但在完整的回调中,我得到了带有的xhr对象,响应状态文本显示“error”。。。谁能给我一些启发和教育我Javascript jqueryajax失败了,javascript,jquery,Javascript,Jquery,我似乎无法理解这个Ajax查询失败的原因,打开控制台并查看网络,我看到有一个200的响应,我的浏览器上的预览选项卡显示了我期望的数据,但在完整的回调中,我得到了带有的xhr对象,响应状态文本显示“error”。。。谁能给我一些启发和教育我 jQuery.ajax({ url:“https://www.fdic.gov/bank/individual/failed/banklist.csv", cache:false, 跨域:是的, xhr:function(){ var xhr=new XM
jQuery.ajax({
url:“https://www.fdic.gov/bank/individual/failed/banklist.csv",
cache:false,
跨域:是的,
xhr:function(){
var xhr=new XMLHttpRequest();
xhr.responseType='blob';
xhr.withCredentials=true;
返回xhr;
},
成功:功能(数据){
console.log(“成功”,数据)
$(“正文”)。追加(“成功”+数据);
},
完成:功能(数据){
console.log(“完成”,数据);
$(“body”).append(“complete”+data.statusText);
}
});
如果您的控制台显示正确的输出,而网络显示200 ok,那么您至少知道它在返回时使用了正确的方法。那么,您返回的数据是什么?您可能需要在body.append中使用结构化html,而不仅仅是文本
我建议要么构建一个标签并将其放入append()方法,要么直接将标签放入html并引用它
以下是一些例子:
<label id="labelOutput"></label>
<script type="text/javascript>
function outputData(data)
{
$('#labelOutput').html(data);
}
</script>
你没有说你所看到的事情会导致你说它失败。另外,
done
不是ajax方法的选项(参考)。它是从$.ajax()
方法返回的promise/deferred函数。如果它失败,将使用有助于解释原因的信息调用错误回调。但是您没有错误回调。我看到网络请求get响应代码200,但返回完整的回调时,xhr响应带有“statusText”:“error”。当我运行脚本时,我在控制台中看到CORS错误。我看到网络请求get响应代码200,但返回完整的回调时,xhr响应带有“statusText”:“error”。您是否尝试过普通的$.get()或$.post()方法?这可能会限制错误原因的数量,因为它简化了调用。我想你需要完整的jquery.min.js来实现这一点。我需要将响应类型设置为blob,以防我得到的不是文本数据,一旦我得到响应,我将检查神奇的数字,看看它是riff/wav/zip还是什么,并适当地处理它
<label id="labelOutput"></label>
<script type="text/javascript>
function outputData(data)
{
$(body).append($('<label>' + data + '</label>');
}
</script>
jQuery.ajax({
url:'https://images.unsplash.com/photo-1465101108990-e5eac17cf76d?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ%3D%3D&s=471ae675a6140db97fea32b55781479e',
cache:false,
xhrFields:{
responseType: 'blob'
},
success: function(data){
var img = document.getElementById('img');
var url = window.URL || window.webkitURL;
img.src = url.createObjectURL(data);
},
error:function(){
}
});