簡體   English   中英

Vue 錯誤:在嚴格模式代碼中,函數只能在頂層或塊內聲明

[英]Vue error: In strict mode code, functions can only be declared at top level or inside a block

我正在運行帶有文本框和提交按鈕的Vue腳本,我正在調用 api 將我在文本框中寫入的內容發布到 api 並從 API 返回信息,我在盡管我已經在 vue 中編寫了 Javascript 函數,但它應該是什么?

使用腳本,我首先設置一個新的 XMLHttpRequest,為 GET 和 POST 方法啟動標頭和 api 密鑰。 然后我創建了 2 個函數來從文本框中獲取數據並將它們發送到 API,然后用另一個函數制作另一個按鈕來發回數據。

我采用這種方法是因為我一直遇到 CORS 問題,並且 API 需要我聲明一個訪問控制源頭,我在這段代碼中做錯了什么嗎? 任何幫助將不勝感激

<script>
export default {
    name: 'ProperForm'
}
    methods: {
        StartClient: function () {
            this.get = function(Url, Callback){
            var aHttpRequest = new XMLHttpRequest();
            aHttpRequest.onreadystatechange = function() {
                if (aHttpRequest.readyState == 4 && aHttpRequest.status == 200)
                Callback(aHttpRequest.responseText);
            }

            aHttpRequest.open("GET", Url, true);
            aHttpRequest.setRequestHeader("X-Api-Key", "eVnbxBPfn01kuoJIdfgi46TiYNv8AIip1r3WbjsX");
            aHttpRequest.send(null);
        }
        this.post = function(Url, message, Callback) {
            var aHttpRequest = new XMLHttpRequest();
            aHttpRequest.onreadystatechange = function() {
                if (aHttpRequest.readyState == 4 && aHttpRequest.status == 200)
                Callback(aHttpRequest.responseText);
            }

            aHttpRequest.open("POST", Url, true);
            aHttpRequest.setRequestHeader("x-api-key", "eVnbxBPfn01kuoJIdfgi46TiYNv8AIip1r3WbjsX");
            aHttpRequest.send(message);
            }
        }
    var client = new StartClient();

    submitData: function () {
        document.getElementById('inputBox').disabled = true;
        var targetInputButton = document.getElementById("inputBox").value;
        var message = '{"targetInputButton":"' + targetInputButton + '"}';
        client.post('https://le75bkfcmg.execute-api.eu-west-2.amazonaws.com/dev/start-trace', message, function(response) {
        document.getElementById('jobId').innerHTML = response;
    });
    }

    sendBackData: function () {
        var jobId = document.getElementById("jobId").innerHTML;
        var message = '{"jobId":"' + jobId + '"}';
        client.post('https://le75bkfcmg.execute-api.eu-west-2.amazonaws.com/dev/check-trace', message, function(response) {
        document.getElementById('report').innerHTML = response;
    });
    }
}

</script>

我寫 var client 的新方法:

StartClient: function () {
    var client 
},

您需要將您的方法對象放在導出中並將方法拆分為逗號

<script>
export default {
    name: 'name',
    methods:{
        foo(){
        },
        bar(){
        }
    }
}

UPD: var client = new StartClient(); 在方法之外定義

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM