Symfony中AJAX请求路径异常:返回[object%20Object]而非正确URL
问题根源与解决方案
嘿,我一眼就看出问题出在哪啦!你现在用$("#edit-url-js").data()拿到的是整个data属性对象,不是你要的data-post-url对应的值,直接把这个对象拼到URL里就会被转成[object%20Object],这就是请求地址跑偏的核心原因~
正确的路径获取方式
你有两种靠谱的方式拿到目标路径:
- 方式一:直接指定要获取的data属性名(用短横线命名的原始名称)
var path = $("#edit-url-js").data('post-url'); - 方式二:先获取完整data对象,再通过驼峰命名的属性取值(jQuery会自动把
data-post-url转成postUrl)var dataObj = $("#edit-url-js").data(); var path = dataObj.postUrl;
修正后的AJAX示例代码
把路径获取方式改对后,AJAX请求就能正常指向正确地址了,完整代码参考:
$(document).ready(function() { // 先正确获取请求路径 var postUrl = $("#edit-url-js").data('post-url'); // 发起AJAX请求 $.ajax({ url: postUrl, method: 'POST', // 根据你的需求调整请求方法 data: { // 这里放你的请求参数 }, success: function(response) { console.log('请求成功:', response); // 处理响应逻辑 }, error: function(xhr, status, error) { console.error('请求出错:', error); // 处理错误逻辑 } }); });
补充说明
你提到console.log(path)能输出正确路径,大概率是你当时调试时不小心输出的是对象里的具体属性(比如console.log(path.postUrl)),但实际代码里却直接使用了整个data对象,才导致了这个看似矛盾的问题。只要把取值方式改对,硬编码能正常工作的情况,动态获取也能完全正常运行~
内容的提问来源于stack exchange,提问作者Marco Koopman
相关产品推荐
相关产品推荐

