Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 未发送Ajax请求_Jquery_Ajax - Fatal编程技术网

Jquery 未发送Ajax请求

Jquery 未发送Ajax请求,jquery,ajax,Jquery,Ajax,我目前正在创建一个函数,用于向应用程序发出POST请求。我已经正确设置了JSON字符串,但是当我使用调试器和监视网络活动时,我从未看到任何请求从我的浏览器发送。这是我的代码的分解。我不得不做一些欺骗,因为这是一个PoC代码,它最初处理的是一个jsp页面 $(document).ready(function() { $("#myForm").submit(function(e) { e.preventDefault(); var myJsonObject = new Obje

我目前正在创建一个函数,用于向应用程序发出POST请求。我已经正确设置了JSON字符串,但是当我使用调试器和监视网络活动时,我从未看到任何请求从我的浏览器发送。这是我的代码的分解。我不得不做一些欺骗,因为这是一个PoC代码,它最初处理的是一个jsp页面

$(document).ready(function() {

  $("#myForm").submit(function(e) {
    e.preventDefault();
    var myJsonObject = new Object();
    //set up my object and stringify it into myString

    sendDataToServer(myString);     
    });

  function sendDataToServer(jsonString) {
     $.ajax({
       type: "POST",
       data: jsonString,
       contentType: "application/json; charset=utf-8",
       url: "https://my.target.server.com"
       dataType : 'json',
       processdata: true,
       success: eval("successMessage"),
       error: eval("failureMessage")
       });
    }

 function successMessage() {
    alert("Post was successful");
  }

 function failureMessage() {
    alert("Post failed");
  }
});
现在,我的ajax调用失败了(仍在处理凭证问题和证书),但我甚至看不到从一开始就发送任何请求。我的ajax调用是错误的,还是存在其他问题?如果由于证书问题,我被拒绝访问服务器,那么在发送任何请求之前尝试建立与服务器的连接时,它会失败吗


还有一些额外的信息,我在提交表单时确实看到failureMessage()警报,因此我知道它至少在调用ajax函数。

您不能发送跨域ajax请求

似乎“”与运行脚本的域不同。 其他流行的解决方案是
JSONP
iframe
flash
。或者使用后端作为代理

见和。
如果目标服务器也归您所有,您可能需要检查。

这可能是因为跨站点域。默认情况下,它设置为false。如果url是另一个域,则需要将其切换为true

根据JQuery文档

crossDomain (default: false for same-domain requests, true for cross-domain requests)
Type: Boolean
If you wish to force a crossDomain request (such as JSONP) on the same domain, set the value of    crossDomain to true. This allows, for example, server-side redirection to another domain. (version added: 1.5)
希望这能有所帮助
愉快的学习:)

请看这篇文章来说明我对闭包的意思。我还整合了其他人给出的答案

function sendDataToServer(jsonString) {
    $.ajax({
       type: "POST",
       data: jsonString,
       contentType: "application/json; charset=utf-8",
       url: "https://my.target.server.com"
       dataType : 'json',
       processdata: true,
       crossDomain: true,
       success: function() {alert("Post was successful")},
       error: function(){alert("Post failed")}
    }
}

eval是邪恶的。在此上下文中不要使用eval。使用一个闭包。@LorenzMeyer抱歉,对AJAX调用来说非常陌生。我查过闭包,它只是在success参数中定义函数吗?对。只需调用函数。不要评估它。每天学习新的东西,谢谢!我会试试看。