2016-11-21 3 views
0

У меня есть форма с данными атрибутом, содержащим URL в файл API JSON:Pass атрибут данных гиперссылка на JQuery Ajax URL

<form class="product" action="#" data-url="dist/scripts/main.js"> 
    [...] 
</form> 

Я хочу, чтобы передать URL из данных атрибутов в Ajax вызовите внешний скрипт.

external.js:

var apiUrl = $('.product').data('url'); 
console.log(apiUrl) // This returns the correct URL set above 

$.ajax(apiUrl).done(function(data) { 
    [...] 
}); 

Я даже конденсируется его, как это и тот же результат:

$.ajax($('.product').data('url')).done(function(data) { 
    [...] 
}); 

Когда я делаю это, мой делает петлю обратной связи, возможно, из-за (данные) параметр, который используется в функции ajax.

Ошибка: Cannot read property '0' of undefined со ссылкой на строку, содержащую currentPosition = data.Positions[0].Position;

Я не знаю, почему URL не переходя к функции AJAX правильно.

+0

Где ваша внешняя.js в вашем html-файле? Убедитесь, что он загружен после загрузки dom. – Garuuk

+0

@Garuuk Это в нижней части страницы перед закрывающим тегом тела. Функция ajax содержится в функции готовности документа. – micah

+0

проверьте свою консоль. Вы видите вызов API? Вызывается ли ваш ajax событием кнопки/слушателя? – Garuuk

ответ

1

https://plnkr.co/edit/RT0cHEAjDHFssXg2YbC4?p=preview

Он работает здесь - вы можете увидеть 404 в консоли. Убедитесь, что вы загружаете external.js после загрузки dom. В этом случае это просто script.js Или вы можете использовать $ (document) .ready()

<html> 

    <head> 
    <script data-require="[email protected]*" data-semver="3.0.0" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    </head> 

    <body> 
    <h1>Hello Plunker!</h1> 
    <form class="product" action="#" data-url="dist/scripts/main.js"> 
    <input type="text"> 

    </form> 
<script src="script.js"></script> 

    </body> 

</html>