ajaxpost后为空php变量
我的脚本文件中有以下代码:ajaxpost后为空php变量,php,jquery,ajax,json,deployment,Php,Jquery,Ajax,Json,Deployment,我的脚本文件中有以下代码: $.ajax({ url: "server.php?saveEvent", data: "myEvent=" + JSON.stringify(myEvent), dataType: "json", type: "post", success: function (data) { if (data) { $("#log").append("<br />Evenement sav
$.ajax({
url: "server.php?saveEvent",
data: "myEvent=" + JSON.stringify(myEvent),
dataType: "json",
type: "post",
success: function (data) {
if (data) {
$("#log").append("<br />Evenement saved.");
}
}
});
当我在本地主机上测试时,一切正常。不幸的是,在部署之后,
$myEvent
空无一人
使用FireHP,我测试了变量中的内容,并查看了发送的标题。该对象被发送到服务器,但php仍然认为它是一个空变量
有没有关于如何做到这一点的想法?这是php版本还是json问题
编辑:PHP版本=5.2.17/json已启用
EDIT2:将te url更改为?saveEvent=1没有更改任何内容
Edit3:我意识到创建get和post有点奇怪,我会尝试更改它,但是get/post应该不是问题,我认为使用
server.php?saveEvent
的行为是由您的服务器定义的吗?这样做的行为可能因服务器或PHP版本而异。PHP变量将设置为什么?使用那种速记法不太清楚,所以我会像你一样使用isset()
。我会使用一些更普通的东西,比如server.php?saveEvent=true
,这样您就可以确定saveEvent
将被设置。仅使用server.php?saveEvent
的行为是由您的服务器定义的吗?这样做的行为可能因服务器或PHP版本而异。PHP变量将设置为什么?使用那种速记法不太清楚,所以我会像你一样使用isset()
。我会使用一些更普通的东西,比如server.php?saveEvent=true
,这样您就可以确定saveEvent
将被设置。您的uri包含一个GET参数,saveEvent
。您只检查POST
数据
尝试检查此项:$\u GET['saveEvent']
即使如此,该参数也没有为其指定值,也许可以将url更改为?saveEvent=1
也没有理由使用2个if语句:
if (isset($_GET['saveEvent'] && isset($_POST['myEvent']))
{
//do stuff
}
由于似乎不仅仅是GET
和POST
问题,您可能希望在url的末尾添加一个符号(&
):看看您的控制台,XHR请求只是将POST参数粘贴在url的末尾,因此uri看起来像以下url之一:
server.php?saveEvent=truemyEvent=foo
server.php?saveEvent=1myEvent=foo
server.php?saveEventmyEvent=foo
//or
server.php?saveEvent=1?myEvent=foo
鉴于,您需要的是:
server.php?saveEvent=1&myEvent=foo&something=else
基本上,坚持使用一种方法,POST或GET,并确保各个参数按照它们应该分开的方式分开。我不确定这是否是问题所在,但请尝试
var\u dump
-使用$\u请求
超级全局,以及$\u GET
,$\u POST
您有什么…您的uri包含一个GET参数,saveEvent
。您只检查POST
数据
尝试检查此项:$\u GET['saveEvent']
即使如此,该参数也没有为其指定值,也许可以将url更改为?saveEvent=1
也没有理由使用2个if语句:
if (isset($_GET['saveEvent'] && isset($_POST['myEvent']))
{
//do stuff
}
由于似乎不仅仅是GET
和POST
问题,您可能希望在url的末尾添加一个符号(&
):看看您的控制台,XHR请求只是将POST参数粘贴在url的末尾,因此uri看起来像以下url之一:
server.php?saveEvent=truemyEvent=foo
server.php?saveEvent=1myEvent=foo
server.php?saveEventmyEvent=foo
//or
server.php?saveEvent=1?myEvent=foo
鉴于,您需要的是:
server.php?saveEvent=1&myEvent=foo&something=else
基本上,坚持使用一种方法,POST或GET,并确保各个参数按照它们应该分开的方式分开。
我不确定这是否是问题所在,但请尝试
var\u dump
-使用$\u请求
超级全局,以及$\u GET
,$\u POST
你有什么…尝试在数据中使用对象而不是字符串
data: {myEvent:myEvent},
尝试在数据中使用对象而不是字符串
data: {myEvent:myEvent},
您安装了什么版本的php?您可能没有json扩展支持。您正在发出post请求,但上面有一个get条件。您安装了什么版本的php?可能是您没有启用json扩展。您正在发出post请求,但上面有一个get条件?@Tim:最终是什么解决了这个问题?这是一个丢失的符号,还是其他所有的东西?是的,符号似乎有帮助,尽管它令人困惑,因为post数据应该在正文中。我还去掉了额外的get参数。是的,我知道这有点让人困惑,但试着看看firebug/chrome开发工具中的标题:即使是post请求也会是这样:
someurl/?param=value&some=more¶ms=too
。@Tim:最终是什么解决了这个问题?这是一个丢失的符号,还是其他所有的东西?是的,符号似乎有帮助,尽管它令人困惑,因为post数据应该在正文中。我还去掉了额外的get参数。是的,我知道这有点让人困惑,但试着看看firebug/chrome开发工具中的标题:即使是post请求也会是这样:someurl/?param=value&some=more¶ms=too
。。。