但是,我的问题似乎不是data:"json"
问题。
我的代码是对服务器的简单POST请求,出于测试目的,它始终返回200 OK。
如果我在准备好文档后直接运行jquery代码,它就可以正常工作并调用该success
函数。
但是,如果我将其附加到on("click")
按钮事件,它将始终返回错误函数。服务器上没有任何更改,我可以在控制台上看到正在调用正确的资源。
我的主要代码位于js文件中:
var myObj = function(){
var url = "myURL";
this.functionINeed = function(data, cb) {
ajaxPost(url, data, cb);
};
function ajaxPost(url, data, cb){
$.ajax({
"url" : url,
"contentType" : "application/json; charset=UTF-8",
"data" : data,
"type" : "POST",
"success" : function(serverData, textStatus, jqXHR){
cb(null, {
"serverData" : serverData,
"textStatus" : textStatus,
"jqXHR" : jqXHR
});
},
"error": function (jqXHR, textStatus, errorThrown) {
cb({
"jqXHR" : jqXHR,
"textStatus" : textStatus,
"errorThrown" : errorThrown
});
}
});
};
}
//I initialize the object directly on the js file
MyObj = new myObj();
然后,第一种情况:直接在页面加载时调用该函数:
var data = {
"action" : "someaction",
"code" : "somecode"
}
MyObj.functionINeed(JSON.stringify(data), function(err, response){
if(err){
alert(err.errorThrown);
return err;
}else{
alert(response.textStatus);
return response;
}
});
这很好用:调用服务器,返回内容,然后JQuery调用success
函数。
但是,如果我将此代码附加到按钮事件,它将始终返回该error
函数。我正在监视服务器,并且我确定它会返回正确的数据。
$("#myButton").on("click", function(){
var data = {
"action" : "someaction",
"code" : "somecode"
}
MyObj.functionINeed(JSON.stringify(data), function(err, response){
if(err){
alert(err.errorThrown);
return err;
}else{
alert(response.textStatus);
return response;
}
});
});
作为记录,我的服务器是带有Sails.js的Node.js,但这似乎无关紧要。
许多类似的问题都以某种方式与此data:"json"
问题相关,但是我已将其删除,最奇怪的是,该行为仅在将代码附加到事件时才会发生。
我怀疑会涉及某种范围界定问题(例如,在文件上实例化对象),但是每次都会正确调用服务器。我只是不明白为什么JQuery会将所有响应都解释为错误(以及空服务器数据)。
我在这里做错了什么?
在疯狂的下午尝试了各种组合之后,一个灯泡熄灭了,我发现问题出在我的按钮html内form
。
<form>
<button></button>
</form>
更改为常规后div
,它起作用了。
<div>
<button></button>
</div>
对我来说,这绝对是疯了。发送Ajax查询时,JQuery似乎捕获了比实际需要更多的信息,并且由于期望某种形式的编码行为,这使响应解析混乱。这是否意味着我的表单中不能有特殊用途的按钮?因为我使用的是Bootstrap,所以“确定”,因为我可以a
为此使用标签(经过测试和工作)。但这似乎是一个JQuery错误(
版本:1.11.2 )
我正在尝试使用JDBC连接到DB2数据库。JDBC连接成功,但在执行查询时,它返回Exception。在进一步分析时,返回以下错误: 错误代码-30025本地化错误消息->;DSN12015:*:V12R1M502;0600;0002 任何能在这方面指导我的人都将是一个很大的帮助! 当使用Tomcat在服务器中运行相同的Eclipse时,将返回相同的错误(404)。
nginx代理服务响应成功,但没有返回内容 配置如下:
我正在制作一个简单的Rest服务,它必须将JSON请求中的数据添加到数据库(MongoDB)中。当我向服务发出请求时出现问题,服务器会出现以下错误: Controller@0.0.0start C:\users\Fernando\Google Drive\tcc_Fernando_Felipe\Controller\Controller节点./bin/www {[Error:找不到模块“../bu
问题内容: 我有以下JS 和以下控制器代码: addarticle()javascript ajax可以运行并将vars发送到服务器并进入db,但是,javascript然后将运行错误函数而不是成功函数。http响应代码是200,我以为它将运行Success函数。有什么建议? 问题答案: 您需要从控制器返回json,因为这是jQuery期望的。您可以返回即 或者,您可以将html设置为数据类型(也
我得到错误:com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法通过使用安全套接字层(SSL)加密建立到SQL服务器的安全连接。错误:“SQL服务器没有返回响应。连接已关闭。” Hibernate配置: application.properties: pom.xml: SQLServerException: openssl客户端连接服务器:1
这是我第一次编写一个应用程序,其中我将后端链接到fornted(spring-boot-react)。 我已经到了这样的地步,我想从客户端视图中填写一个表单并提交它(在这种情况下,将表单保存到数据库中)。 我启动了服务器(spring boot中的应用程序)和客户端(react)。启动的应用程序已加载。表单会显示出来,但当我填写表单并单击“提交”时,不会执行任何操作。我使用devtools并得到错