将 JSON 字符串传递给 $.ajax 并在 PHP 文件中访问它
我正在尝试通过 ajax
将 JSON 编码
字符串发送到 PHP 文件。
我尝试了这个,但 ajax 目标文件中的 $_POST
为空。
var html = $.ajax({
type: "POST",
url: "getControl.php",
data:js_post_array,
dataType: 'json',
async: false,
success: function (data, status)
{
//alert('here');
//$("#notiDesc").text(data.msg);
}
}).responseText;
js_post_array
包含 json 编码的字符串
{ 'business_name': 'test', 'business_type': 'R', 'type': '', 'total_sku_in_store': '',
'speciality': '', 'first_name': '', 'last_name': '', 'title': '',
'responsible_for_wine_buying': '', 'responsible_for_events': '', 'address1': '' }
,但在 getControl.php
文件中我尝试了 print_r($_POST)
显示一个空数组。
但是,当我复制此字符串并粘贴到此处 data:js_post_array,
而不是 js_post_array
时,它就可以正常工作了。
我做错了什么?
I am trying to send JSON encoded
string to PHP file through ajax
.
I tried this but the $_POST
is empty in the ajax target file.
var html = $.ajax({
type: "POST",
url: "getControl.php",
data:js_post_array,
dataType: 'json',
async: false,
success: function (data, status)
{
//alert('here');
//$("#notiDesc").text(data.msg);
}
}).responseText;
js_post_array
contains json encoded string
{ 'business_name': 'test', 'business_type': 'R', 'type': '', 'total_sku_in_store': '',
'speciality': '', 'first_name': '', 'last_name': '', 'title': '',
'responsible_for_wine_buying': '', 'responsible_for_events': '', 'address1': '' }
but in the getControl.php
file I tried print_r($_POST)
that shows an empty array.
But when I just copy this string and paste here data:js_post_array,
instead of js_post_array
then it works fine.
What I am doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
对于发送部分,执行以下操作:
对于接收部分:
请注意,
For the send part, do the following:
For the receiving part:
Note that
这是因为
data
接受字符串而不是数组等其他数据类型...它只是将字符串作为query String
附加到 url 中并发送到服务器。因此,如果您传递一个数组,那么它不会将其分解为字符串,这就是为什么它给您空的
$_POST
it's because
data
accepts a string not other data type like array...it just append string as aquery String
in url and send to server.So if you pass an array then it's not going to break this into string, that's why it's giving you empty
$_POST
您确定 js_post_array 在该函数内可见吗?
看起来一个名为 js_post_array 的新变量在 ajax 调用中被创建为空。
尝试这样声明 js_post_array :
Are you sure the js_post_array is visible inside that function?
It looks like a new variable named js_post_array is created empty in the ajax call.
Try to declare js_post_array this way: