我遇到了ajax响应问题。我有一个将Json发送到服务器的ajax请求,响应也返回一个json。
我收到回复,但无法联系到responseText。下面是我的代码:
(require 'messages-are-flowing)
(add-hook 'message-mode-hook #'messages-are-flowing-use-and-mark-hard-newlines)
问题是我收到以下错误:
无法读取未定义
的属性'responseText'
但$('#outside').click(function() {
var formData = '{"nin":"3","etype":"iso","perror":"1000","filename":"C:/Users/Mary/workspace/tdiclient/helloworld.txt"}'// _ sono i due punti e -e il bckslash
var response = '';
var posts= $.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
'url' : 'http://localhost:8080/com.tdi/rest/tdi/newcontent/parameters',
'type' : 'POST',
'data' : formData,
responseText: {
success: true,
mode: "Online"
}
})
console.log(posts);
if(posts.readyState == '1'){
alert(posts.responseText);
}
});
打印所有响应,如下所示:
我google了,我尝试了很多解决方案,但我找不到解决方案
答案 0 :(得分:0)
我认为您对如何使用$.ajax()
方法感到有些困惑。试试这个:
$('#outside').click(function() {
var formData = '{"nin":"3","etype":"iso","perror":"1000","filename":"C:/Users/Mary/workspace/tdiclient/helloworld.txt"}'// _ sono i due punti e -e il bckslash
var response = '';
var posts = $.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
'url' : 'http://localhost:8080/com.tdi/rest/tdi/newcontent/parameters',
'type' : 'POST',
'data' : formData
})
posts.done(function(res){
console.log(res) // res should be your responseText
})
});
此外,我并不完全相信您的标题有效。也许其他人可以对此发表评论。
答案 1 :(得分:0)
console.log
有一个特例,因为它获得了$.ajax()
返回的jqXHR对象的引用。因为它是一个引用,所以DevTools会在某些时候发生以后显示对象(或数组)的内容。
主要问题是,您在使用异常responseText
发送请求后,尝试直接访问$.ajax
。属性responseText
将在请求完成后包含响应的内容。要处理它,您必须使用将在请求成功后执行的回调。 jqXHR对象提供了方法done
,该方法将一个functon作为参数,将在请求成功时执行。
以下是您可以执行此操作的示例:
$('#outside').click(function() {
var formData = '{"nin":"3","etype":"iso","perror":"1000","filename":"C:/Users/Mary/workspace/tdiclient/helloworld.txt"}'// _ sono i due punti e -e il bckslash
var response = '';
var posts= $.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
'url' : 'http://localhost:8080/com.tdi/rest/tdi/newcontent/parameters',
'type' : 'POST',
'data' : formData
})
posts.done(function (data) {
console.log(data);
alert(data);
})
});
注意:我删除了ajax配置对象上的responseText,因为它不是$.ajax()
的接受选项。