我知道你们中有些人问过这个问题,但我的问题不同。当 JS 和 php 文件都在同一个域中时,它们就像一个魅力,但是当我将 PHP 文件放在远程服务器上并调用该服务器时,我没有得到任何结果。下面是我的代码。请让我知道我做错了什么。我需要编辑我的 htaccess 文件吗?
-----JS-----
$("document").ready(
function(){
$(".js-ajax-php-json").submit(
function(){
var data = {
"action": "test"
};
data = $(this).serialize() + "&" + $.param(data);
jQuery.support.cors = true;
$(".the-return").html('<img src="loading.gif" />');
$.ajax({
type: "POST",
dataType: "json",
url: "http://********/response.php",
data: data,
success: function(data) {
$(".the-return").html(
"Favorite beverage: " + data["favorite_beverage"] + "<br />Favorite restaurant: " + data["favorite_restaurant"] + "<br />Gender: " + data["gender"]
);
}
});
return false;
});
});
----PHP-----
header('Access-Control-Allow-Origin: *');
header('Access-Control-Request-Method: POST');
header('Access-Control-Request-Headers: X-PINGOTHER');
if (is_ajax()) {
if (isset($_POST["action"]) && !empty($_POST["action"])) {
$action = $_POST["action"];
switch($action) {
case "test": test_function(); break;
}
}
}
function is_ajax() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}
function test_function(){
$return = $_POST;
$return["json"] = json_encode($return);
echo json_encode($return);