![](/img/trans.png)
[英]I am still struggling to pass JSON data to another page. Any ideas how this is done?
[英]Still struggling to pass JSON object along with a url param to a php file.Any ideas how?
// Creating variables to hold data from textboxes. First building associated details
myData.Token = $("#token").val();
myData.BuildingDisplay = $("#BuildingDisplay").val();
myData.FeatureID = $("#FeatureID").val();
myData.BuildingID = $("#BuildingID").val();
myData.Address = $("#Address").val();
myData.City = $("#City").val();
myData.District = $("#District").val();
myData.Location = $("#Location").val();
myData.State = $("#State").val();
myData.StreetName = $("#StreetName").val();
myData.Zip = $("#Zip").val();
myData.X = $("#X").val();
myData.Y = $("#Y").val();
$.ajax({
type: "POST",
url: "proxyCheck.php",
data: "{ 'Token': '" + mytoken + "','Address': '" + myaddress + "', 'City': '" + mycity + "','Location': '" + mylocation + "','State': '" + mystate + "', 'StreetName': '" + mystreetname + "', 'Zip': '" + myzip + "', 'X': '" + myX + "', 'Y': '" + myY + "'}",
contentType: "application/json;charset=utf-8",
dataType: "json",
async: false,
success: function (response) {
alert("Record has been added successfully.");
window.location.reload();
}
});
當以上數據格式化為JSON對象時,它以以下格式顯示:
{data:
{
"token":"73264280-be3f-4f5b",
"BuildingDisplay":"Fire Station 21 Fairburn - 19 East Broad St.",
"CallerEmail":"Jim.Parker@yahoo.com",
"CallerFax":"",
"CallerFirstName":"Jim",
"CallerLastName":"Parker",
"CallerMiddleInitial":"",
"CallerOtherPhone":"",
"CallerState":"",
"CallerWorkPhone":"918-354-2874"}}
我想做的是將它們傳遞給proxyCheck.php,如下所示:
proxyCheck.php?data={data:
{
"token":"73264280-be3f-4f5b",
"BuildingDisplay":"Fire Station 21 Fairburn - 19 East Broad St.",
"CallerEmail":"Jim.Parker@yahoo.com",
"CallerFax":"",
"CallerFirstName":"Jim",
"CallerLastName":"Parker",
"CallerMiddleInitial":"",
"CallerOtherPhone":"",
"CallerState":"",
"CallerWorkPhone":"918-354-2874"}}&token=73264280-be3f-4f5b
請注意&token = 73264280-be3f-4f5b
我似乎無法弄清楚如何做到這一點。
有人可以幫忙嗎?
$.ajax({
type: "POST",
url: "proxyCheck.php?token=" + myData.Token,
data: JSON.stringify(myData)
contentType: "application/json;charset=utf-8",
dataType: "json",
async: false,
success: function (response) {
alert("Record has been added successfully.");
window.location.reload();
}
});
return false;
}
//proxyCheck.php
<?php
$ch = curl_init("http://domain/UserServices/Create");
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
?>
// * ** * ** * ** * ** * ** * ** *
// AJAX
var uname = $("#user").val();
var upass = $("#pass").val();
$.post("proxyValidate.php",
{ data: JSON.stringify({ LoginName: uname,Password: upass }) })
.done(function(data) {
var result = JSON.parse(data);
switch(result.Status) {
case 0:
//login successful
tokenVal = result.Value.Token;
location.href = "http://domain/userService.php?token="+tokenVal;
break;
case 2:
//invalid login
alert(result.Message);
break;
}
})
.fail(function() {
alert("The AJAX request failed!");
});
});
// proxyValidate
<?php
$ch = curl_init("http://domain/Validation/Validate");
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
?>
沒有必要將javascript對象轉換為字符串--jQuery將為您執行此操作。 嘗試這個...
$.ajax({
type: "POST",
url: "proxyCheck.php?token=" + myData.Token,
data: myData,
dataType: "json",
async: false,
success: function (response) {
alert("Record has been added successfully.");
window.location.reload();
}
});
變量名稱區分大小寫(例如,令牌和令牌),但上面的代碼應該發布您需要的內容,並在URL中包含令牌值。
或者,如果您需要將數據作為字符串傳遞,那么您可以執行以下操作...
$.ajax({
type: "POST",
url: "proxyCheck.php?token=" + myData.Token,
data: {
data: JSON.stringify(myData)
},
dataType: "json",
async: false,
success: function (response) {
alert("Record has been added successfully.");
window.location.reload();
}
});
對於任何可能遇到與我類似問題的人來說,這是適用於我的解決方案:
$.ajax({
type: "POST",
url: "proxyCheck.php?token",
data: {
data: JSON.stringify(myData),
token: myData.Token
},
dataType: "json",
async: false,
success: function (response) {
alert("Record has been added successfully.");
window.location.reload();
}
});
你真的應該使用POST來獲得那種數據。 如果你堅持按照你的建議使用GET,你應該對JSON進行urlencode,但是,你可能很容易發現你的url太長而無法打開。
編輯:@Archer應該有效的解決方案
$.ajax({
type: "POST",
url: "proxyCheck.php?token=" + myData.Token,
data: {
data: JSON.stringify(myData)
},
dataType: "json",
async: false,
success: function (response) {
alert("Record has been added successfully.");
window.location.reload();
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.