我有以下的燒瓶(Python)的服務器上運行的JS腳本的HTTP請求:如何發佈從一個網站到我的本地服務器(本地主機)
from flask import Flask, render_template, request, redirect, Response,jsonify
import random, json
app = Flask(__name__)
@app.route('/')
def output():
return redirect("This is a temporary implementation.")
@app.route('/model',methods = ['POST'])
def ask_model():
data = request.get_json(force=True)
print("data recieved: "+str(data))
return jsonify({'vlaue': "some response"})
if __name__ == '__main__':
# run!
#the "IP:Port" the server listens to is "localhost:5000"
app.run()
我也有一個正在運行的JS腳本網站名爲slither.io(來源:https://github.com/ErmiyaEskandary/Slither.io-bot)
我想創建一個學習機器人,爲了做到這一點,我需要發送此JS腳本和服務器之間的請求,但我不知道該怎麼做。
例如,我加入以下行腳本:
console.log("pre-post");
$.post('http://localhost:5000/model',JSON.stringify(canvasUtil.mapToMouse(window.goalCoordinates)),
function(){
console.log("entered model function.");
},'json');
console.log("post-post");
當我看到控制檯日誌中唯一的「崗前」被打印出來,和我的服務器不接收任何請求。
爲什麼我的請求不能到達本地服務器? 我如何解決這個問題,以便我的服務器能夠得到請求並對它們做出響應?
您是否在運行本地服務器的同一臺機器上測試此代碼?否則,這顯然不能工作。 – CBroe
即使你在本地測試,如果腳本運行的站點被請求使用除「http:// localhost:5000 /」以外的任何其他來源,這仍然是一個跨域請求,所以你的應用將首先所有必須正確處理CORS飛行前請求... – CBroe
感謝您的回覆。你能稍微解釋一下還是給一些源讀? (1)服務器運行在我的本地計算機上,並使用greaseMonkey運行的JS腳本,就我所知,只是從控制檯調用腳本。爲什麼它不工作? (2)什麼是跨域請求,爲什麼與我的案例有關?我只是想從腳本發送一個請求到我的服務器並對其作出響應 – Yair