我们使用php作为代理来访问web服务并将记录插入数据库,但数据没有插入。有什么想法吗?
有点背景 下面名为proxy.php的php文件用于指向名为getUserDetails的web服务我们使用php作为代理来访问web服务并将记录插入数据库,但数据没有插入。有什么想法吗?,php,jquery,ajax,json,proxy,Php,Jquery,Ajax,Json,Proxy,有点背景 下面名为proxy.php的php文件用于指向名为getUserDetails的web服务 //proxy.php <?php $ch = curl_init("http://myotherdomain.com/getUserDetails"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POS
//proxy.php
<?php
$ch = curl_init("http://myotherdomain.com/getUserDetails");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $_POST);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output
?>
但是,单击“提交”按钮后,不会插入任何记录
我曾尝试使用firebug进行调试,但没有出现错误
下面是我用来插入记录的ajax脚本
知道我做错了什么吗
提前谢谢
<script type="text/javascript">
function CallService() {
// Creating variables to hold data from textboxes
var myaddress = $("#Address").val();
var mycity = $("#City").val();
var mydistrict = $("#District").val();
var mylocation = $("#Location").val();
var mystate = $("#State").val();
var mystreet = $("#Street").val();
var myzip = $("#Zip").val();
$.ajax({
type: "POST",
url: "proxyInsert.php",
data: JSON.stringify({Address: myaddress,City: mycity,District: mydistrict,Location: mylocation,State: mystate,Street: mystreet,Zip: myzip }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){alert(data);},
failure: function(errMsg) {
alert(errMsg);
}
});
}
</script>
//Markup
<button type="submit" onclick="CallService()">Submit</span></button>
JSON.stringify看起来可疑,因为您试图使用$\u POST在服务器端访问数据,但数据在请求正文中,而不是POST参数中。@KevinB,您好,感谢您的快速响应。但我不确定我是否理解你反对JSON.stringify的论点。插入代码是在第一个ajax之后模块化的,它使用$\u POST和JSON.stringify对用户进行身份验证。stringify当然返回一个JSON字符串,它不是参数字符串。因为您正在向服务器发布一个JSON字符串,所以JSON字符串将成为请求主体,$\u POST将为空。@KevinB,我想我现在明白您的意思了。您的观点是,尽管第一个ajax是通过代理发布到web服务的,但它只是验证和返回结果,而不是试图向数据库插入记录的插入位,不是吗?如果是的话,我已经在线查看了大量的示例,我看到JSON.stringify正在向数据库提交记录?假设这些例子有点误导,那么我需要改变什么呢?这些例子就是,这些例子。它们不是规则。将数据作为json字符串发送并没有错,只是另一种方式而已。如果要发送json字符串,则需要在php中正确接受json字符串。
$ch = curl_init("http://myotherdomain.com/createRecords");
<script type="text/javascript">
function CallService() {
// Creating variables to hold data from textboxes
var myaddress = $("#Address").val();
var mycity = $("#City").val();
var mydistrict = $("#District").val();
var mylocation = $("#Location").val();
var mystate = $("#State").val();
var mystreet = $("#Street").val();
var myzip = $("#Zip").val();
$.ajax({
type: "POST",
url: "proxyInsert.php",
data: JSON.stringify({Address: myaddress,City: mycity,District: mydistrict,Location: mylocation,State: mystate,Street: mystreet,Zip: myzip }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){alert(data);},
failure: function(errMsg) {
alert(errMsg);
}
});
}
</script>
//Markup
<button type="submit" onclick="CallService()">Submit</span></button>