Почему я получаю междоменную ошибку только в функции обратного вызова? - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть следующий код в test.js:

var symbol = "GOOG";
var Url = 'https://api.iextrading.com/1.0/stock/' + symbol + '/quote?filter=symbol,companyName,open,close,high,low,change,changePercent';
$.ajax({
    url: Url,
    type: "GET",
    success: function(result){
        console.log(result)
    },
    error: function(error) {
        alert("Error received:  " + error)
        console.log(`Error ${error}`)
    }
})

Он прекрасно работает, не возвращает ошибок и все JSON, который я хотел.НО ... если я помещу это в обратный вызов, например, в следующем коде, я получу междоменную ошибку.Почему это случилось?

$(document).ready(function() {
    $('#btn').click(function() {
        const symbol = document.getElementById('symbol').value;
        var Url = 'https://api.iextrading.com/1.0/stock/' + symbol + '/quote?filter=symbol,companyName,open,close,high,low,change,changePercent';

        $.ajax({
            url: Url,
            type: "GET",
            success: function(result){
                console.log(result)
            },
            error: function(error) {
                alert("Error received:  " + error)
            }
        })
    })
})

1 Ответ

0 голосов
/ 10 декабря 2018

Я обнаружил исправление, и оно как-то связано с пузырьками.Это не было нигде, где я был сосредоточен (а именно, в моем файле JavaScript).Я до сих пор не понимаю, почему я получил эту ошибку CORS.Если бы кто-то мог указать причину, я, безусловно, был бы признателен за это.

Ошибка:
Запрос перекрестного источника заблокирован: Политика одинакового происхождения запрещает чтение удаленного ресурса на https://api.iextrading.com/1.0/stock/aapl/quote?filter=symbol,companyName,open,close,high,low,change,changePercent. (Причина: запрос CORS не был выполнен).

Исправлено удаление элементов формы, окружающих мою кнопку Добавить:

<body>
    <h1 ><center>Stock Watcher</center></h1> 
    <div id="root">
        <div style="text-align: center;">
            <form>
                 <input id="symbol" type="text" placeholder="Enter stock symbol...">
                 <button id="btn">Add</button>
            </form>
        </div>      
    </div>
    <script src="js/httpRequest.js"></script>
</body>
...