【发布时间】:2014-04-14 18:48:32
【问题描述】:
下面的 jquery 函数是来自 Boomerang 的示例脚本。这是他们的 GetSendList 函数。我试图制作它的 php 版本,但仍然不成功。函数如下:
function GetSendList() {
var r = new Object;
r = [
{
email: $("#txt-SendList-email-0").val(),
jobNumber: $("#txt-SendList-jobNumber-0").val()
},
{
email: $("#txt-SendList-email-1").val(),
jobNumber: $("#txt-SendList-jobNumber-1").val()
}
]
var dataString = JSON.stringify(r);
$.ajax({
type: "POST",
url: "https://target.boomerang.com/V1.0/api/SendList",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
data: dataString,
headers: { auth_token: $('#txtAuthenticationCode').val() },
success: function (response) {
}
});
}
这是我的 PHP 脚本:
$main_url = "https://target.boomerang.com/V1.0/api/";
$token = "xxx";
$values = array('email'=>'email',
'jobNumber'=>'jobnumber'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$main_url."SendList");
curl_setopt($ch,CURLOPT_HTTPHEADER,array('auth_token: '.$token));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($values));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
$output = json_decode($server_output);
我猜我的值格式错误,这就是我失败的原因。我不知道PHP中jquery对象的等价性。
PS。我使用相同的 php 脚本来调用他们的其他函数,并且我成功地使用了这些函数。我现在只有 GetSendList 有问题。请指教。谢谢!
【问题讨论】:
-
仅供参考:不要使用
async: false。这将导致浏览器锁定。 -
我认为您的PHP版本缺少SSL选项和cacert.pem文件,否则您无法进行HTTPS。
-
jQuery 对象?嗯?你的意思是object literal?
-
r = new Object; r = ...?new Object的意义何在?从什么时候开始有人在文字{}上写new Object -
API 需要 JSON,但您发送的是纯格式编码的数据字符串。
标签: javascript php jquery object