我联系了GoDaddy关于这件事,以防他们结束了,但他们无法提供帮助。 我正在尝试通过xmlhttprequest中的JSON发送联系表单,我通过POST请求发送它。不幸的是,这是在另一个托管服务上没有发生的事情,它是作为get请求收到的。 这是我的js代码,以及Chrome发送后显示的内容:
代码:
function SendJson(values, type){
var xhr = new XMLHttpRequest();
var url = 'http://www.klemequestrianestates.com/processes/mail_form.php';
var data = JSON.stringify(values);
console.log(data);
xhr.open('POST', url);
xhr.setRequestHeader('Form-Type', type);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(data);
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
//success confirmation
}
};
}
其中Values是一个js对象,type是'sell'或'buy'(表单有两种不同类型的客户可以使用它,卖家和买家有不同的字段。
这是PHP文件:
<?php
header('Access-Control-Allow-Headers: *');
header("Access-Control-Allow-Methods: POST, GET");
$data_type = $_SERVER['HTTP_FORM_TYPE'];
$raw_JSON = file_get_contents('php://input');
$converted_JSON = json_decode($raw_JSON);
echo var_dump($converted_JSON);
$type = $_SERVER['REQUEST_METHOD'];
echo var_dump($type);
if($data_type === 'sell'){
$first_name = $converted_JSON->div_00;
$last_name = $converted_JSON->div_01;
$phone_num = $converted_JSON->div_02;
$email = $converted_JSON->div_03;
$street = $converted_JSON->div_04;
$city = $converted_JSON->div_05;
$state = $converted_JSON->div_06;
$zip = $converted_JSON->div_07;
$option = $converted_JSON->div_08;
$message = $converted_JSON->div_09;
$to = 'contact@joshualyness.com';
$subject = $first_name.' '.$last_name.', '.$option;
$body = 'From: '.$email.PHP_EOL.PHP_EOL.'Phone Number: '.$phone_num.PHP_EOL.PHP_EOL.'Address: '. $street.PHP_EOL.$city.PHP_EOL.$state.PHP_EOL.$zip.PHP_EOL.PHP_EOL.'Message: '.$details;
mail($to, $subject, $body);
}
为什么会发生这种情况?如果您需要更多详细信息,请发表评论,我会看到我能做些什么。我知道这是一个奇怪的问题,如果我没有任何其他想法,我不会打扰社区。 感谢。