2011-05-27 152 views
1

我想要做一个ajax在我的网页之一使用jQuery调用。jquery阿贾克斯错误

它一直进入Error函数。 当我在Firebug中查看控制台时,状态似乎没问题,它显示200 OK。

当我在firefox窗口中手动启动url时,我得到了预期的页面。

但是,当通过jquery ajax调用相同的url时,它总是进入错误函数。

以下是我调试 xhr.readyState = 4 xhr.statusText =错误 xhr.responseBody =不确定期间获得的各种值。

难道你们中的任何人都可以帮助我吗?

function ajax_call(urlString) 
     { 
      ret_val=""; 
      $.ajax 
      (
       { 
        type: "GET", 
        url: urlString, 
        async:false, 
        cache:false, 
        success: function(msg) 
        { 
         ret_val=msg; 
        }, 
        error:function (xhr, textStatus, thrownError) 
        { 
         ret_val=xhr.readyState; 
         alert("textStatus=" +textStatus); 
        } 
       } 
      ); 
      return ret_val; 
     } 
+0

@nunu你所需要的(),我看不出任何问题与javascript代码本身也许它的问题与你的请求URL ? – 2011-05-27 10:20:17

+0

感谢您的回复。 但添加 dataType:'text' 没有帮助。我收到了同样的错误。 而且,我所要求的网址是在同一个域中,实际上php调用正在对同一个php进行,并且具有不同的参数集。 这不是URL的问题,就好像我在另一个Firefox窗口中手动启动url,请求通过没有任何问题 你们看到任何其他原因,为什么我得到一个AJAX错误 – Vikas 2011-05-27 10:36:02

+0

你可以发布警报( msg)' – 2011-05-27 10:52:33

回答

0

这是我的错!

在浏览器的网址,我一直在寻找 /: “HTTP://localhost/data.php”

在AJAX调用

,我被赋予绝对URL像 “HTTP调用同一个PHP /xyz.com/data.php“

因此,ajax调用认为这是一个跨域调用,虽然它是用于相同的php。

通过调用相对URL “/data.php”解决了这个

+0

是的,这个跨域政策对于网络新手来说很棘手(就像我一样),因为我们看到一个200 OK并且不知道为什么它不工作! – Offirmo 2013-03-25 09:23:54

1

看起来你可能会从您的调用返回的明文,看着jQuery的文档阿贾克斯它说的dataType参数默认为:

dataType           String 
Default: Intelligent Guess (xml, json, script, or html) 

这似乎在暗示,它不会“猜”的明文,所以也许尝试添加

dataType: 'text' 

(假设你返回明文 - 如果不是我会删除此)为y我们的参数。


而且,只是为了确认,您所请求的网址是同一服务器发出请求的JavaScript上的,不是吗?

+0

感谢您的答复。 但添加 dataType:'text' 没有帮助。我收到了同样的错误。 而且,我所要求的网址是在同一个域中,实际上php调用正在对同一个php进行,并且具有不同的参数集。 这不是URL的问题,就好像我在另一个Firefox窗口中手动启动url,请求经过没有任何问题 你们看到任何其他原因为什么我得到一个AJAX错误 – Vikas 2011-05-27 10:35:55