AJAX发送POST和获取结果的问题

时间:2017-08-11 17:16:16

标签: javascript jquery json ajax web

我是JS和JSON的新人。因此,我需要使用POST向Google API发送大量JSON,并获得答案并通过警报显示。我写了这个页面,但这段代码没有结果。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Redericting</title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
 </head>
 <body> 
  <script type="text/javascript">
  $.ajax({
        type: "POST",
        url: 'https://www.googleapis.com/geolocation/v1/geolocate?key=KEY',
        data: '{wifiAccessPoints:["macAddress", "signalStrength"], cellTowers:["cellId", "locationAreaCode", "mobileCountryCode", "mobileNetworkCode"]}',
        dataType: "json",
        success: function(response) {
            alert(response);

        }
    });

  </script>
 </body>
</html>

2 个答案:

答案 0 :(得分:0)

使用AJAX时,您需要设置要发送的信息的内容类型。默认情况下,此值设置为application/x-www-form-urlencoded; charset=UTF-8

  $.ajax({
    type: "POST",
    url: 'https://www.googleapis.com/geolocation/v1/geolocate?key=KEY',
    data: JSON.stringify({wifiAccessPoints:["macAddress", "signalStrength"], cellTowers:["cellId", "locationAreaCode", "mobileCountryCode", "mobileNetworkCode"]}),
    contentType: "json",
    success: function(response) {
      alert(response);
    }
  });

答案 1 :(得分:-1)

您是以JSON格式发送回复吗? datatype属性是指您从服务器返回的类型。如果不匹配,控制将进行错误回调。删除或更新数据类型属性以匹配响应类型。进行以下更改并尝试

$.ajax({
        type: "POST",
        url: 'https://www.googleapis.com/geolocation/v1/geolocate?key=KEY',
        data: '{wifiAccessPoints:["macAddress", "signalStrength"], cellTowers:["cellId", "locationAreaCode", "mobileCountryCode", "mobileNetworkCode"]}',            
        success: function(response) {
            alert(response);
        },
        error: function(jqXHR,  textStatus, errorThrown) {
            alert("error");
        }
    });