所以我有一个AJAX调用,我将其用于POST 1变量到我在单独服务器上的PHP脚本。 PHP接受此变量并根据变量返回数据。这适用于IE9及以下版本的所有浏览器。 IE9返回数据但是错误表示变量丢失了,这对我来说表明它没有发送数据。下面我正在制作AJAX电话:
(function (jQ) {
var inviteID = '00000000000';
jQ.ajax({
url: 'www.example.com/test.php',
type: 'POST',
dataType: 'json',
cache: false,
data: { classID: inviteID },
error: function (data, status, error) {
jQ('.statusField').append('Failure: ' + data + status + error);
},
success: function (data, status, error) {
jQ('.statusField').append('Success: ' + data);
}
});
})(jQuery);
下面我有正在使用的PHP脚本:
<?php
//first POST to grab token
function runPost($classID) {
$postdata = array(
'username' => 'username',
'password' => 'password'
);
//open connection
$ch = curl_init();
//set the url, POST data
curl_setopt($ch, CURLOPT_URL, "https://www.example.com/login");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postdata));
curl_setopt($ch, CURLOPT_USERAGENT, 'example');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
list($message, $time, $token, $userID) = split(',', $result);
list($one, $two, $three, $four, $five) = split('\"', $token);
$four = json_encode($four);
$four = str_replace('"','',$four);
$secondaryPostData = array(
'token' => $four,
'data' => array( 'invitationID' => $classID
));
//open connection
$chu = curl_init();
//set the url, POST data
curl_setopt($chu, CURLOPT_URL, "https://www.example.com/classID");
curl_setopt($chu, CURLOPT_POST, 1);
curl_setopt($chu, CURLOPT_POSTFIELDS, json_encode($secondaryPostData));
curl_setopt($chu, CURLOPT_USERAGENT, 'example');
curl_setopt($chu, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($chu, CURLOPT_RETURNTRANSFER, 1);
//execute post
$secondResult = curl_exec($chu);
//close connection
curl_close($chu);
return json_encode($secondResult);
}
//Grab classID from javascript
echo runPost(trim($_POST['classID']));
?>
同样,除IE之外的所有内容都可以正常工作。我尝试了几种不同的方法但是一切都给了我同样的错误。 IE中的网络控制台显示Request主体中确实有classID,但我猜测它不会将数据发送到PHP脚本。我不知道我是否遗漏了IE需要将其发送到PHP脚本的内容,但是对此的任何帮助都将非常感激。
答案 0 :(得分:0)
您是否尝试过使用此功能?
$("button").click(function(){
$.post("demo_test.php",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
在chrome和IE中为我工作。
$.post()
是$.ajax();
的简写方法
当我开始遇到这个问题时,它会在$.ajax();
中完成你可以做的每件事我从未使用过$.ajax();
,除非我必须将FormData中的所有字段输入的整个对象发送给