[英]jQuery AJAX vs. XMLHttpRequest
搜索一個答案這個問題我作為follwing代碼工作正常結果:
xhr = new XMLHttpRequest();
xhr.onreadystatechange=function()
{
if (xhr.readyState==4 && xhr.status==200)
{
response = JSON.parse(xhr.responseText);
if(typeof response =='object') {
$('#modal-spinner-seo-update').hide('slow');
jQuery.each(result, function(field, message) {
$('#seo-'+field).next('div.error-message').html(message).fadeIn('fast');
});
} else {
$('#modal-spinner-seo-update').hide('slow', function() {
$("#seo-widget-message-success").fadeIn('slow').delay(2000).fadeOut('slow');
});
}
return false;
}
};
xhr.open('GET','/metas/saveMetas?model='+model+'&f_key='+f_key+'&pagetitle='+pagetitle+'&keywords='+keywords+'&description='+description+'&niceurl='+niceurl, true );
xhr.send();
但是此jQuery版本不起作用。 那么誰能發現錯誤? 有沒有? jQuery AJAX版本在我的本地主機上運行良好,但在服務器上卻沒有,但是返回403 Forbidden Error。 這是一個cakePHP項目。
因此,我希望有人可以告訴我什么地方出問題或缺少什么設置。
$.ajax({
url: '/metas/saveMetas',
data: {
"model": model,
"f_key": f_key,
"pagetitle": pagetitle,
"keywords": keywords,
"description": description,
"niceurl": niceurl
},
dataType: 'json',
complete: function(){
return false;
},
success: function(result) {
if(typeof result =='object') {
$('#modal-spinner-seo-update').hide('slow');
jQuery.each(result, function(field, message) {
$('#seo-'+field).next('div.error-message').html(message).fadeIn('fast');
});
} else {
$('#modal-spinner-seo-update').hide('slow', function() {
$("#seo-widget-message-success").fadeIn('slow').delay(2000).fadeOut('slow');
});
}
return false;
}
});
除了dataType之外,還需要考慮的其他事項:
由於返回403錯誤,您是否在CakePHP項目的“ MetasController”的beforeFilter()中的$ this-> Auth-> allow()方法中添加了“ saveMetas”方法?
class MetasController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('saveMetas');
}
...
...
}
編輯:
既然您已經說過做到了,那么您有$this->autoRender = false;
和$this->layout = 'ajax';
在您的saveMetas函數中?
最后,由於您可以直接訪問該頁面,因此請在初始函數調用之后執行pr( $this->request )
然后在不使用AJAX的情況下訪問該頁面,以查看其內容。 禁止的403告訴我這是一個權限問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.