我正在尝试使用Mootools发送一个简单的ajax post请求,但我只是在标题中收到错误消息,似乎它没有正确发送数据(请求被取消)。
这是html:
<form id="form_5" name="form_5" action="someajaxfile.php" onsubmit="jsfunction(this,5);return false;" method="post">....</form>
以下是提交时调用的javascript函数:
function jsfunction(form,eventId) {
var container = $('form_contents' + eventId);
form.send({
update: container,
evalScripts: true,
onComplete: function() {
container.removeClass('ajax-loading');
}
});
}
我尝试将诸如headers: {'X-Request': 'JSON'},
之类的内容添加到send函数中,但似乎没有任何更改错误。一个奇怪的事情是,在网络选项卡下的chrome中,我可以看到两个请求:
someajax.php
/somefolder
POST
302
Found
text/html
mootools.js:247
Script
354B
0B
2ms
2ms
2ms0
someajax.php
/somefolder
GET
(canceled)
Pending
http://localhost:8888/somefolder/someajax.php
Redirect
13B
0B
0ms
0.0 days
问题是:为什么我不能发送数据,发生了什么以及为什么以及我的问题有什么好的解决方案?
答案 0 :(得分:1)
问题是:为什么我不能发送数据,发生了什么以及为什么和 它对我的问题有什么好的解决方案吗?
您的问题是Chrome + Local和 - allow-file-access-from-files 限制的组合。
尝试:
答案 1 :(得分:1)
嗯,在尝试了几件事后,我不认为可以直接从表单元素发出“AJAX”请求(但如果我错了,我想看一个例子如何工作n_n)
通常我使用Request的实例(或任何扩展名:Request.JSON,Request.JSONP,Form.Request)。
我会这样做:
function myfunction(form){
new Request({
url:form.action,
data:form,
onSuccess:function(result){
console.log(result);
}
}).send();
return false;
};
这里有一个工作示例:http://jsfiddle.net/pCUKe/