1

JQueryを使用してFlickrにファイルをアップロードしようとしています。フォームプラグインを使用して送信するフォーム(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が更新されないことを意味します。誰でもアイデアがあります。

ありがとう

4

5 に答える 5

2

AJAX を使用したファイルのアップロードについては、次のスレッドを参照してください。

ファイルを非同期でアップロードするにはどうすればよいですか?

試したことはありませんが、サーバーの応答を取得できないようです (とにかく簡単ではありません)。

于 2008-10-08T14:45:15.120 に答える
0

あなたができることは-あなたのドメインでproxy.phpファイルを使用することです。ajaxを使用してフォームをproxy.phpに送信します。proxy.phpのコードは、CURLを使用してフォームをflickrに送信します。CURLコードはphp.netまたは他の多くのサイトで入手できます

于 2010-02-25T18:00:21.993 に答える
0

この方法では、AJAXを介してファイルをアップロードすることはできません。

JavaScriptのセキュリティ制限のため、純粋なAJAXファイルアップロードシステムは使用できません。

于 2008-09-29T12:51:02.300 に答える
0

ajax はクロスドメインでは機能しません。あるドメインから別のドメインに ajax を使用してフォームを送信することはできません。

于 2010-02-25T17:56:33.140 に答える
0

ajaxSubmitを使用しているようです。それがjQuery Form Pluginですよね?問題はそれで何かである可能性はありますか?

代わりにjQuery.postを使用してみましたか?

于 2008-09-29T12:59:37.287 に答える