我想使用jsonp调用带有ajax的函数(因为我调用url的服务器与发送ajax的服务器不同)。 ajax调用python函数删除一些目录,然后返回一些东西(返回对我来说并不重要)。当它返回时,它不会在success函数中返回(它返回错误函数)。我做错了什么?
P.S:我正在使用python和烧瓶中的jsonify
AJAX:
$.ajax({
url: 'http://serverPath:1234/deleteDir?path='+ id,
type: 'GET',
dataType: 'jsonp',
success: function (data) { console.log(data);},//console.log(data); },
error: function (data) { console.log(data); },
});
服务器上的PYTHON功能:
@app.route("/deleteDir", methods=['POST', 'GET'])
def deleteDir():
path =request.args.get('path')
pathAdequacao = 'reports/'+path+'/adequacao'
pathBrain = 'reports/'+path+'/brain'
try:
shutil.rmtree(pathAdequacao, ignore_errors=True)
except:
pass
try:
shutil.rmtree(pathBrain, ignore_errors=True)
except:
pass
return jsonify({'response':'ok'})
发送到错误功能的返回(状态为200):
{readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
答案 0 :(得分:0)
您正在使用JSONP,因此您必须将JSONP填充添加到结果中:
return '{funcname}({data})'.format(
funcname=request.args.get('callback'),
data=jsonify({'response':'ok'}),
)
在此处详细了解JSONP:https://en.wikipedia.org/wiki/JSONP