使用Ajax的简单POST请求

时间:2016-02-17 14:09:51

标签: jquery html ajax html5 post

我正在尝试使用the OGRE web app to convert JSON files to shapefiles进行简单的帖子请求。

我写了这段代码,但文件没有像它应该的那样下载,[编辑]它甚至没有上传json。

网站将此指定为输入请求参数:

http://ogre.adc4gis.com/convertJson with one of the following params:

json - text of the GeoJSON file
jsonUrl - the URL for a remote GeoJSON file
outputName (optional) - the name for the resulting zip file
skipFailures (optional) - skip failures

我做错了什么?

<html>
<head>
    <script src="http://code.jquery.com/jquery-2.2.0.min.js" type="text/javascript"></script>
</head>

<body>

<input type="button" value="Send Post" onclick="sendPost()">

<script>
var data = { "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "geometry": { "type": "Point", "coordinates": [102.0, 0.5] },
    "properties": { "prop0": "value0" }
  }]
};

function sendPost() {
    $.ajax({
        type: "POST",
        url: 'http://ogre.adc4gis.com/convertJson',
        json: data,
        success: success
    });
}

function success(result) {
    alert('Process achieved!');
}

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

我收到此错误:

Object {error: true, msg: "No json provided"}

有什么问题?

2 个答案:

答案 0 :(得分:5)

jquery ajax没有这样的属性var content, 将json添加为post-data,如下所示:

json

在您的成功处理程序中,您将在function sendPost() { $.ajax({ type: "POST", url: 'http://ogre.adc4gis.com/', data: {json:JSON.stringify(data) }, success: success }); } 中获得回复 不要指望您的浏览器下载Quentins Answer中所述的内容。

答案 1 :(得分:1)

  

但文件没有像预期的那样下载。

文件不是应该下载。

您已发出Ajax请求。对它的响应将由JavaScript处理。它将处理。您编写的用于处理它的JavaScript只调用alert(而不是其他任何内容)。

如果您希望浏览器以与提交常规表单(不使用JavaScript)相同的方式处理它,那么您应该提交常规表单。 Ajax的重点是以自定义方式处理响应。