通过 JQuery 的 Web 服务 POST 不起作用



我有一个安静的网络服务,我正在尝试通过我的网页通过jquery调用发出HTTP POST请求。

<html>
<head>
<script type="text/javascript" src="js/newjavascript.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jqueryui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js">       </script>
<script type="text/javascript" src="js/jquery-ui-1.8.22.custom.min.js"> </script>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"> </script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<input type="text" name="name" value="" id="name"/>
<input type="submit" value="submit" onclick="intialize()"/>
<script>
function formToJSON() {
  return JSON.stringify({"name": $('#name').val() });
 }
  </script>
  <script>
   function intialize(){
   $.ajax({
   type: 'POST',
   contentType: 'application/json',
   url: "http://localhost:41191/test/resources/storeincompleteform",
   dataType: "json",
   data: formToJSON(),
   success: function(data, textStatus, jqXHR){
        alert(' success');
    },
    error: function(jqXHR, textStatus, errorThrown){
        alert('error: ' + textStatus);
    }
  });
      }
  </script>
  </body>
  </html> 

但是上面的代码不起作用。Web 服务工作正常

这是一个 XSS 问题,可能是由于端口不同。改变:

dataType: "json"

自:

dataType: "jsonp"

您的脚本正在发布到其他端口。这与浏览器的同源策略冲突。

如果你试图从服务器检索数据,你可以使用jQuery的内置JSONP技术与一些服务器端脚本相结合来规避这一点。

但是,由于在您的情况下,您尝试将数据发布到服务器,因此您有两种选择:

  1. 确保 XMLHttpRequest 是相同的原始
  2. 利用现代浏览器中可用的跨域XMLHttpRequest技术;在这种情况下,您必须配置服务器以提供Access-Control-Allow-Origin标头,以允许您从中发布网站。

最新更新