JQuery getJSON()使请求头url重复

时间:2013-12-23 22:04:47

标签: jquery ajax codeigniter

当我尝试运行以下ajax函数时,我在请求网址中获得了重复值:

var url = "localhost/travel/home/getPrevApplicantData";
$.getJSON(url, {group_id : "1"})
.done(function(data) {
    console.log( "JSON Data: " + json.address_telephone );
})
.fail(function( jqxhr, textStatus, error ) {
    var err = textStatus + ", " + error;
    console.log( "Request Failed: " + err );
});

该函数在onclick事件中,当运行ajax函数时,我得到以下标题:

Request URL:http://localhost/travel/home/addApplicantVi_pageload/localhost/travel/home/getPrevApplicantData?group_id=1&_=1387835412861
Request Method:GET
Status Code:200 OK

我正在使用CodeIgniter作为我的PHP框架,并且发出调用以从models方法获取数据的控制器方法位于Home控制器中并命名为getPrevApplicantData。

我不知道为什么url会像这样被发送回来,但我无法使用ajax得到任何结果。如何制作它以便我可以指定正确的URL而不将其附加到当前的URL?

我也在Devtools中遇到一个错误,指向JQuery中的这一行:

xhr.send( ( s.hasContent && s.data ) || null );

我的失败函数返回:

Request Failed: parsererror, SyntaxError: JSON.parse: unexpected character

但我没有意识到问题出在哪里。如果您需要更多信息请告诉我,我们很乐意解决这个问题。

2 个答案:

答案 0 :(得分:1)

网址是相对于当前位置的,如果您想要一个绝对路径添加http://,或者您需要上升一级../getPrevApplicantData

答案 1 :(得分:0)

您的url变量有误;应该是/travel/home/getPrevApplicantData

以/开头的URL是绝对的,从域/服务器根开始。没有/的网址被认为是相对于当前文档的,这就是为什么它将您指定的网址附加到当前文档网址的原因。

就附加URL参数_=1387835412861而言,这是由jQuery添加的,以防止浏览器缓存查询中的响应。这可以通过{。{3}}中描述的$ .ajax()中的cache设置来控制