我的jquery.post调用有问题。
当我执行以下脚本时:
<script type="text/javascript">
$(document).ready(function(){
//var cmsr_url = 'http://127.0.0.1/sphere/modules/cmsrating/ajax.php?rand=1231';
var cmsr_url = 'ajax/test.html';
$('.star, .auto-submit-star').rating({
callback: function(value, link){
alert(cmsr_url);
$.post({
url: cmsr_url,
// also tried to put here a string like below
// url: 'http://127.0.0.1/sphere/modules/cmsrating/ajax.php?rand=1231'
data: {rating : value},
success: function(){
alert('done!');
},
dataType: 'json'
});
}
});
});
</script>
我的提醒显示正确的网址。但是我的萤火虫显示请求的网址是:
http://127.0.0.1/sphere/pl/content/%5Bobject%20Object%5D
它从何而来?
答案 0 :(得分:3)
我认为问题在于您正在尝试使用$ .post函数,就像使用$ .ajax函数一样。从文档来看,post看起来不接受$ .ajax这样的选项。 https://api.jquery.com/jQuery.post/
试试这个:
$.ajax({
url: cmsr_url,
// also tried to put here a string like below
// url: 'http://127.0.0.1/sphere/modules/cmsrating/ajax.php?rand=1231'
data: {rating : value},
success: function(){
alert('done!');
},
dataType: 'json',
type: 'POST'
});
答案 1 :(得分:0)
试
url: cmsr_url.toString(),
在你的情况下http://127.0.0.1/sphere/pl/content/%5Bobject%20Object%5D
意味着cmsr_url是对象,而不是字符串,可能它可以被强制转换为字符串
答案 2 :(得分:0)
看起来你正在传递Object
,预计会有String
。您网址的末尾是[object Object]
的网址编码版本,这是在普通对象上调用toString()
时返回的内容。
- 编辑 -
正如@ MyP3uK在他的正确答案中指出的那样,这是因为您将选项对象传递给$.post
,其中只需要一个字符串网址。