要求:使用Javascript我必须做一个"发布"。我还需要传递2个输入。一个是'查询'参数类型的数据类型'长'另一个是'身体'参数类型的数据类型'数组[长]'。
代码:
<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");
});
});
问题:无法发帖。我认为我的错误是&#39; body参数&#39;
我请求你的帮助来解决这个问题!谢谢
答案 0 :(得分:0)
当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的默认功能,以防止缓存。
答案 1 :(得分:0)
解决了问题。问题与我绑定请求体的方式有关 -
$(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");
});});