我想发送一个字符串并返回json。
这样可行,但它不会返回json代码
$.ajax({
url: "getFeed.php",
type: "post",
data: myString
});
当我希望它返回一个json字符串时,它会给我一个错误。
$.ajax({
url: 'getFeed.php',
type: "post",
data: {string1: "testdata", string2: "testdata"},
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
});
由于某种原因,服务器没有收到任何数据。
我该怎么写这个? (我想发送2个字符串)
答案 0 :(得分:1)
JSONP不允许使用POST
方法,因为它实际上只是一个脚本请求。
由于使用的路径是相对的(同一域),我建议您使用json
数据类型,因为jsonp
用于跨域请求。
答案 1 :(得分:0)
编辑:事实上,密钥不需要在引号中。我错了。但是,为了避免潜在的未来问题,它似乎仍然是最佳做法。
$.ajax({
"url": "getFeed.php",
"type": "post",
"data": {"string1": "testdata", "string2": "testdata"},
"dataType": "jsonp",
"jsonp": "jsoncallback",
"timeout": 5000,
});
答案 2 :(得分:0)
好的,首先你的ajax语法似乎不对。
假设您要发送两个字符串stringA
和stringB
。你的php文件是getFeed.php
。
你的ajax看起来像这样:
$.ajax({
type : "POST",
url : "getFeed.php",
data : {firstVar:stringA,secondVar:stringB},
dataType: "json",
success : function(data){
// Here you receive the JSON decoded.
var mesage = data.msg;
}
});
在getFeed.php
内,你会收到这样的字符串:
$firstString = $_POST['firstVar'];
$secondString = $_POST['secondVar'];
当您将JSON对象从getFeed.php
返回到ajax时,您就会这样做:
$myArray = array("msg"=>"Hello World", "another"=>"thing");
echo json_encode($myArray);
让我们回到ajax函数,成功部分是,你收到一个参数data
,如果你想访问“消息”,那么和另一个',你会这样:
success : function(data){
var first = data.msg;
var second = data.another;
}