Javascript HTTP POST在文件浏览器中工作,但在Apache中运行时不工作
我有一个简单的网页,只需按一下按钮就可以向本地主机发送HTTP POST请求(目前为止)。当我在浏览器(chrome)中打开HTML文件时,它工作正常。按钮发送POST请求,服务器显示数据已进入 当我在apache2中运行同一个文件时,不知何故,post请求要么不是由javascript发送,要么不是由Web服务器接收。我不认为是后者,因为服务器向我显示了任何类型的连接尝试,即使是在错误的请求等情况下 我觉得这与我运行apache时使用的URL有关。在本地主机上运行时,似乎应该更改路径。apache端口在默认端口80上运行,我的服务器在端口5000上运行 刚打开时工作的html文件:Javascript HTTP POST在文件浏览器中工作,但在Apache中运行时不工作,javascript,python,html,apache,Javascript,Python,Html,Apache,我有一个简单的网页,只需按一下按钮就可以向本地主机发送HTTP POST请求(目前为止)。当我在浏览器(chrome)中打开HTML文件时,它工作正常。按钮发送POST请求,服务器显示数据已进入 当我在apache2中运行同一个文件时,不知何故,post请求要么不是由javascript发送,要么不是由Web服务器接收。我不认为是后者,因为服务器向我显示了任何类型的连接尝试,即使是在错误的请求等情况下 我觉得这与我运行apache时使用的URL有关。在本地主机上运行时,似乎应该更改路径。apac
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<title>My jQuery JSON Web Page</title>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
JSONTest = function() {
var resultDiv = $("#resultDivContainer");
$.ajax({
url: "http://127.0.0.1:5000/api/data",
type: "POST",
dataType: "json",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({"apiKey": "23462"}),
success: function (result) {
switch (result) {
case true:
processResponse(result);
break;
default:
resultDiv.html(result);
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
};
</script>
</head>
<body>
<h1>My jQuery JSON Web Page</h1>
<div id="resultDivContainer"></div>
<button type="button" onclick="JSONTest()">JSON</button>
</body>
</html>
检查浏览器开发工具网络和控制台中抛出的实际请求和/或错误,以获取线索。还没有提到错误处理程序中的警报是否触发,“在apache2中运行完全相同的文件”是什么意思?您是否通过本地Apache安装服务文件,而不是使用Flasks静态文件服务功能?
#Flask restful webserver
#Hunter
#2 April 2016
from random import randint
import time
import datetime
import json
import decimal
from flask import Flask, jsonify, abort, request, make_response, url_for
app = Flask(__name__, static_url_path="")
#standard error handlers
@app.errorhandler(400)
def bad_request(error):
return make_response(jsonify({'error': 'Bad request'}), 400)
@app.errorhandler(404)
def not_found(error):
return make_response(jsonify({'error': 'Not found'}), 404)
@app.route('/api/data', methods=['POST', 'OPTIONS'])
def post_data():
if request.method == 'OPTIONS':
headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'POST, GET, OPTIONS',
'Access-Control-Max-Age': 1000,
'Access-Control-Allow-Headers': 'origin, x-csrftoken, content-type, accept',
}
return '', 200, headers
data = json.loads(request.data)
print data
print 'here'
return jsonify({'result': 'true'}), 201
if __name__ == '__main__':
app.run(debug=True)