当我尝试运行以下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
但我没有意识到问题出在哪里。如果您需要更多信息请告诉我,我们很乐意解决这个问题。
答案 0 :(得分:1)
网址是相对于当前位置的,如果您想要一个绝对路径添加http://
,或者您需要上升一级../getPrevApplicantData
。
答案 1 :(得分:0)
您的url
变量有误;应该是/travel/home/getPrevApplicantData
以/开头的URL是绝对的,从域/服务器根开始。没有/的网址被认为是相对于当前文档的,这就是为什么它将您指定的网址附加到当前文档网址的原因。
就附加URL参数_=1387835412861
而言,这是由jQuery添加的,以防止浏览器缓存查询中的响应。这可以通过{。{3}}中描述的$ .ajax()中的cache
设置来控制