2017-09-26 50 views
0

我想從python服務器發送一個結果作爲對客戶端JavaScript的響應。 我的JavaScript代碼是在這裏:如何在提交表單後從服務器發送響應?

document.addEventListener('DOMContentLoaded', function() { 
chrome.tabs.getSelected(null, function(tab) { 
    d = document; 
    var xhr = new XMLHttpRequest(); 
    var f = d.createElement('form'); 
    f.action = 'http://127.0.0.1:5000/Get%20Form/'; 
    f.method = 'post'; 
    var i = d.createElement('input'); 
    i.type = 'hidden'; 
    i.name = 'url'; 
    i.value = tab.url; 
    f.appendChild(i); 
    d.body.appendChild(f); 
    f.submit(); 
}); 
}, false); 

,也是我的蟒蛇服務器的代碼如下:

from django.http import HttpResponse 
import json 
from flask import Flask, flash, redirect, url_for, request, 
    render_template,jsonify 
app = Flask(__name__) 
user=""@app.route('/Get Form/',methods = ['POST']) 
def GetForm():` 
    request.method == 'POST' 
    url=request.form['url'] 
    print url 
    data={} 
    data['url'] = url 
    data['result'] = 'safe' 
    response = HttpResponse(json.dumps(data), content_type = "application/json")  
    print response 
    return 

if (__name__ == '__main__'): 
app.run(debug=True,host='0.0.0.0', use_reloader=False) 

任何機構幫我發到客戶端的JSON對象響應的JavaScript

回答

0

可以使用FormData()XMLHttpRequest()可變xhr在代碼中的問題

var xhr = new XMLHttpRequest(); 
    xhr.open("POST", "http://127.0.0.1:5000/Get%20Form/"); 
    xhr.onload = function() { 
    console.log(xhr.responseText) // do stuff with response from server 
    } 
    xhr.onerror = function(err) { 
    console.error(err) 
    } 
    var fd = new FormData(); 
    fd.append("url", tab.url); 
    xhr.send(fd); 
+0

我實現了你的答案。但我仍然收到錯誤。文件「C:\ Python27 \ lib \ site-packages \ flask \ app.py」,第1725行,在make_response raise ValueError('View function did not return a response') ValueError:View函數未返回響應沒有在控制檯上顯示響應值 –

+0

在'def GetForm():\''中,反引用'\''的目的是什麼? – guest271314

+0

其實我試圖創建一個鉻擴展,它訪問當前標籤網址和python服務器端我發現當前的網址是釣魚網站或不。現在我能夠接收表單值到python服務器。我的問題是,我不能將我的結果發回到JavaScript客戶端。 GetForm函數僅用於讀取客戶端JavaScript代碼中的標籤url。你能幫我把python的結果發送給javascript進一步執行嗎? –

相關問題