鍍金池/ 問答/Python  HTML/ 瀏覽器使用 jQuery Ajax 獲取服務端數(shù)據(jù)報 Provisional h

瀏覽器使用 jQuery Ajax 獲取服務端數(shù)據(jù)報 Provisional headers are shown 錯誤?

問題描述

初學 Flask 框架后嘗試做一個練手項目,功能是通過收集使用網(wǎng)絡上公開的哈希解密 API 來獲取明文
通過 jQuery.get() 獲取服務端數(shù)據(jù)時發(fā)現(xiàn)返回的數(shù)據(jù)大小為 0 字節(jié),而把 URL 直接通過瀏覽器打開響應卻是正常的。

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

Google 了一圈試了一圈沒解決問題,好多人說跨域,可是這肯定是一個域名下的啊,解決方法眾說紛紜,感覺一臉懵逼。
其實一模一樣的功能我用 Laravel 以前實現(xiàn)過,那時候寫的也蠻順的,所以考慮是寫后端代碼時出了問題(僅猜測),emmm 好像以前 Ajax 我是用原生 JS 寫的,不記得了。

相關代碼

main.py (Flask)

import requests
from flask import Flask, request, render_template

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/decrypt')
def decrypt():
    payload = {'hash': request.args.get('hash'), 'hash_type': 'md5', 'email': 'jayan2358@protonmail.com',
               'code': '1vds464vxc61v'}
    r = requests.get('http://md5decrypt.net/en/Api/api.php', params=payload)
    return r.text


if __name__ == '__main__':
    app.run()

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>CHash</title>
    <link rel="stylesheet" >
</head>
<body>
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
    <a class="navbar-brand" href="#">CHash</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarCollapse">
        <ul class="navbar-nav mr-auto">
            <li class="nav-item active">
                <a class="nav-link" href="#">Home</a>
            </li>
        </ul>
        <form class="form-inline mt-2 mt-md-0">
            <input id="hash" name="hash" class="form-control mr-sm-2" type="text" placeholder="Enter Hash">
            <button id="decrypt" class="btn btn-outline-success my-2 my-sm-0">Decrypt</button>
        </form>
    </div>
</nav>
<script src="https://cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4/dist/js/bootstrap.min.js"></script>
<script src="../static/main.js"></script>
</body>
</html>

static/main.js

$("#decrypt").click(function () {
        $.get("/decrypt", {hash: $("#hash").val()}, function (data) {
            alert(data);
        })
    }
);

你期待的結果是什么?實際看到的錯誤信息又是什么?

萌新求教,麻煩各位大佬了,希望給出解決方法的同時簡要說明一下報錯的原因
Chrome DevTools 抓包 Ajax 請求報了一個 Provisional headers are shown 錯誤,截圖如下,Response 是空的,所以不截了
圖片描述

回答
編輯回答
怪痞

provisional headers are shown意味著你的請求沒有真正發(fā)出去,provisional是臨時的意思。
檢查一下你的瀏覽器是不是有什么插件阻止了該請求,AdBlock之類的。
chrome下訪問這個內部頁面:chrome://net-internals,用請求的URL搜索一下。

2018年5月9日 17:23
編輯回答
柒喵

V2EX 上 shintendo 的回答解決了我的問題

https://www.v2ex.com/t/471738

2018年9月17日 09:18