問題是,一旦pjaxed請求完成,pjax也會啓動一個正常的GET請求。奇怪的pjax行爲:GET請求在pjax請求後啓動
我的代碼是這樣的:
$(document).on('pjax:end', function(event){
alert("end");
inpjax = false;
});
$(document).on('pjax:timeout', function(event) {
alert("timeout")
event.preventDefault();
});
$(document).on('pjax:error', function() {
alert("error");
});
$(document).on('pjax:success', function() {
alert("success");
});
$(document).ready(function(e) {
inpjax = false;
$('.pj').click(function(e) {
e.preventDefault();
if(!inpjax)
{
inpjax = true;
$.pjax({
timeout: 5000,
url: $(this).attr('href'),
container: '#codeport'
});
}
});
});
正如你所看到的,它應該給我不同的stiuations警報,但我只得到pjax警告:結束事件,並警告後,pjax同修正常的GET請求,時間是這樣的:
[17:36:02.002] GET http://localhost/abstract?_pjax=%23codeport [HTTP/1.1 200 OK 86 ms]
[17:36:02.170] GET http://localhost/abstract [HTTP/1.1 200 OK 73 ms]
我沒有得到超時,錯誤或成功的警報。
這可能是什麼原因造成的?請幫助...
SOLUTION:
的問題竟然是我的服務器端的代碼,用一整頁響應,而這是造成第二個GET請求。所以如果這個問題也發生在你身上,請確保你的服務器端代碼正確響應PJAX請求。
你們的服務器支持pjax獲得事件消息的元件?你讀過這本手冊嗎? https://github.com/defunkt/jquery-pjax? –
也許爲此使用yui很重要? http://yuilibrary.com/yui/docs/pjax/ –
@ Arekkusandaa.Irujasukin這是對您刪除的消息的回覆: 爲什麼它會如何使用它? 不管怎樣,我改變了這樣的代碼: 'if($ .support.pjax){ $(document).on('click','.pj',function(event){ \t var container =「# codeport 「; \t $ .pjax.click(事件,{集裝箱:集裝箱}) })} 其他 警報(」 不pjax支持「);' 但同樣的事情正在發生,什麼都沒有改變。 [http:// localhost/abstract] _pjax =%23codeport [HTTP/1.1 200 OK 96 ms] [18:11:16.069] GET http:// localhost/abstract [HTTP/1.1 200 OK 91 ms]' 另外,我的瀏覽器當然支持ajax。 –