Загрузка файла JQuery Flickr не работает - PullRequest
1 голос
/ 29 сентября 2008

Я пытаюсь загрузить файл, используя Flickr, используя JQuery. У меня есть форма (которая работает, если я не использую JQuery), которую я отправляю с помощью плагина формы. Мой код выглядит следующим образом:

<html>

<head>
<title>Test Upload</title>
<script type="text/javascript" src="jquery-1.2.6.js"></script>
<script type="text/javascript" src="jquery.form.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $('#myForm').bind('submit', function() {
        $(this).ajaxSubmit({
            dataType: 'xml',
            success:  processXml
        });
        return false; // <-- important!
    });
});

function processXml(responseXML) {
    var message = $('message', responseXML).text();
    document.getElementById('output').innerHTML = message;
}

</script>

</head>

<body>

<form id="myForm" method="post" action="http://api.flickr.com/services/upload/" enctype="multipart/form-data">
<input type="file" name="photo" id="photo"/>
<input type="text" name="api_key" id="api_key" value="..snip.."/>
<input type="text" name="auth_token" id="auth_token" value="..snip.."/>
<input type="text" name="api_sig" id="api_sig" value="..snip.."/>
<input type="submit" value="Upload"/>
</form>
<div id="output">AJAX response will replace this content.</div>
</body>

</html>

Проблема в том, что в ответ я получаю следующий текст:

<rsp stat="fail">

    <err code="100" msg="Invalid API Key (Key not found)" />

</rsp>

несмотря на то, что файл загружается без проблем. Это означает, что мой div не обновляется, так как он не запускает функцию успеха. У любого есть идеи.

Спасибо

Ответы [ 5 ]

2 голосов
/ 08 октября 2008

Смотрите эту другую ветку о загрузке файлов с помощью AJAX:

Как я могу загружать файлы асинхронно?

Я никогда не пробовал, но кажется, что вы не можете получить ответ от сервера (в любом случае, не легко)

0 голосов
/ 25 февраля 2010

что вы можете сделать - использовать файл proxy.php на вашем домене. отправьте форму с помощью ajax в proxy.php. Код в вашем proxy.php отправит форму, используя CURL для flickr. Вы получите код CURL на php.net или на многих других сайтах

0 голосов
/ 25 февраля 2010

ajax не работает междоменный. Вы не можете отправить форму с помощью ajax из одного домена в другой домен.

0 голосов
/ 29 сентября 2008

Я вижу, что вы используете ajaxSubmit . Это плагин jQuery Form , верно? Возможно ли, что проблема связана с этим?

Вы пытались использовать jQuery.post вместо?

0 голосов
/ 29 сентября 2008

Вы не сможете таким образом загрузить файл через AJAX.

Чистая система загрузки файлов AJAX невозможна из-за ограничений безопасности JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...