当尝试设置并获取jQuery Ajax(post)调用的url时,我认为允许动态设置请求发送到的url是有用的,如下所示:
在ID为“store”
的div中将网址设置为“store.php”<div id='store'>store.php</div>
然后在jQuery Ajax调用中使用它,通过从id为'store'的div中提取值:
var store = $('#store').val(); // the url path to store.php
$.ajax({
method: "post",
data: "html",
//url: "store.php", // SUCCESS - status: success, alert 'content saved' is triggered, i.e. we received msg 'content saved' back from store.php
url: store, // FAILURE - status: success, alert 'an error occured' is triggered, do NOT receive msg back from store.php
data: {
content: content,
slug: slug,
articleId: articleId
},
success: function(data, status) {
if (data == "content saved") {
alert('your content is saved');
} else {
alert('an error occured...');
}
document.getElementById('status').innerHTML = 'STATUS: ' + status;
document.getElementById('success').innerHTML = 'RESPONSE FROM SERVER: ' + data;
},
error: function(xhrobj, status) {
document.getElementById('error').innerHTML = 'ERROR handler says: ' + status;
}
})
使用硬编码的url:'store.php'有效,我从store.php收到一条消息,但是当我使用div中的'store.php'时,它没有。
结论:我想从div(或隐藏的表单字段)动态检索url,类似于我在这里显示的方式,因为它可以让我轻松地更改目标php文件
欢迎任何想法,非常感谢提前
答案 0 :(得分:0)
.val();
不检索元素的文本内容 - 它返回元素的value
。 (对于输入和textareas等元素有效,但对通用div
无效)
改为检索元素的文本:
var store = $('#store').text();
或者更好,没有jQuery:
var store = document.querySelector('#store').textContent;