为什么Ajax得到请求失败

我的请求的响应是java脚本代码。 当我把URL放在浏览器中时,我可以在页面上看到整个生成的java脚本代码。 传递给$ .ajax的url格式如下:

http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345 

当我把上面的URL我看到请求成功。 现在,我使用jQuery在Ajax请求下使用此url。

  var finalUrl = "http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345"; var req = $.ajax({ type:"GET", url:finalUrl, type:"script", data:"", success: function(html){ alert('Requese sucessful.'); }, complete:function(jqXHR, textStatus) { alert("request complete "+textStatus); }, error: function(xhr, textStatus, errorThrown){ alert('request failed->'+textStatus); } }); 

问题1:这会发出警报“请求失败错误”。为什么会这样?

问题2:有没有办法在上述过程中返回成功/失败代码?

在:

 $.ajax({ type:"GET", url:finalUrl, type:"script", (...) 

您的对象中有两次’type’键。 所以我认为只有第二个(’脚本’)。 显然’script’不是有效的HTTP方法(如HEAD,GET,PUT,POST等)。 您正在查找“脚本”的关键字可能是dataType ,它可能是xmljsonjsonptextscripthtml

不要忘记查看jsonp ,它通常是返回脚本内容并调用它的好方法。

我不知道为什么,但我可以提供一些如何调试或找出问题的提示:

1)安装fiddler来查看HTTP请求。

2)类型:“脚本”,为什么类型是脚本? 尝试使用“text / html”。

3)使用complete(jqXHR, textStatus)可以查看HTTP状态。 有关$ .ajax的更多信息

 var finalUrl=http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345; 

是非常无效的JavaScript。 您可能意味着将URL作为字符串传递:

 var finalUrl = 'http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345';