[英]Posting data using Javascript $ajax(settings)
要求:使用Javascript,我必須執行“ Post”操作。我還需要傳遞2個輸入。一個是數據類型為“ long”的“查詢”參數類型,另一個是數據類型為“ body”的參數類型'Array [long]'。
碼:
<script type="text/javascript">
$(function() {
var params = {
// Request parameters
};
$.ajax({
url: "https://api.XXXX.com.au/XXXX/api/V1/XXXXX/some_webservice?param1= 5637161343",
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("ContentType","application/json;charset=utf-8");
type: "POST",
// Request body
data:{Param2:[5637151026]}
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
問題:無法發布。我認為'body parameter'的語法出了問題。
希望您能幫助您解決此問題!
如果ajax調用的查詢參數保持不變,則某些瀏覽器將從緩存中返回先前的響應。 因此,為防止這種情況,請向ajax調用添加虛擬參數,該參數將在每個ajax請求上更改。 像這樣 :
<script type="text/javascript">
$(function() {
var params = {
// Request parameters
};
$.ajax({
url: "https://api.XXXX.com.au/XXXX/api/V1/XXXXX/some_webservice?param1= 5637161343",
cache : false,
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("ContentType","application/json;charset=utf-8");
type: "POST",
// Request body
data:{Param2:[5637151026], extraParam : Math.random() }
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
由於Math.random()
瀏覽器在此不會給出緩存的響應。 因為每次extraParam的值都不同。 我還添加了cache : false
。 這是jQuery防止緩存的默認功能。
解決了問題。問題在於我綁定請求正文的方式-
$(function() {
var params = {
// Request parameters
};var info=[5637151026];$.ajax({
url: "https://api.XXXX.com.au/XXXX/api/V1/XXXXX/some_webservice?param1= 5637161343",
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("ContentType","application/json;charset=utf-8");dataType:"json",type: "POST",
data: JSON.stringify(info)
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.