我正在尝试使用ajax post请求发送json对象。 我正在做的事情有些不对劲。这是我的代码。
$.ajax({
url : formURL,
type: 'POST',
data : data,
success:function(data, textStatus, jqXHR)
{
console.log(data);
},
error: function(jqXHR, textStatus, errorThrown)
{
console.log(errorThrown);
},
});
错误部分中的console.log抛出一个空字符串,无论我尝试在我的操作中返回什么。这是ajax帖子发布到的代码的一部分:
public function saveInfosAction(){
$request = $this->getRequest();
$eav = $this->getServiceLocator()->get('Frontend\Model\Eav');
return "test";
}
有人可以给我一个暗示,为什么它不起作用? 提前谢谢
答案 0 :(得分:0)
您可以在其中定义网址和数据
尝试像url:http://example.com/myfile.php
这样的直接网址
像
data:{'id':id, 'name': name}
然后发送json然后dataType :'json'
试
$.ajax({
url : formURL,
type: 'POST',
data : data, // data will be like data : {data:data, id: id},
dataType :'json',
success:function(data)
{
console.log(data);
},
error: function(jqXHR, textStatus, errorThrown)
{
console.log(errorThrown);
},
});
还会使用echo
或print
不返回
答案 1 :(得分:0)
如果jqXHR.readyState=0
和jqXHR.status=0
那么根据我的经验,这是一个跨域问题。请注意,如果您的网站加载了http://www.domain.com
而您的ajax加载到http://domain.com
,反之亦然,那么它将被视为跨域请求。
在chrome中打开您的页面并打开控制台(右键单击页面 - >检查元素 - >控制台选项卡) 再次运行你的ajax,看看你得到了什么错误。
chrome提供有关ajax错误的更详细信息,即使Firefox没有说什么
答案 2 :(得分:0)
感谢大家! 我发现了问题。
我尝试通过点击
链接来触发提交 jQuery("#submitInfo").on('click',function(e){..)
但我忘记了这一行
e.preventDefault();
所以表单并没有真正贴上ajax函数。
答案 3 :(得分:-1)
使用ajax时,您必须使用echo
从ajax请求页面返回值。将return
更改为echo
。
echo "test";
exit;