1

Web サイトのフォームを使用して Facebook アルバムに画像を投稿しようとしています。jQuery と AJAX を使用せずに投稿しても問題なく動作するため、正しいアクセス トークンを取得できることはわかっていますが、Web サイトからリダイレクトされます。それを解決するために、jQuery AJAX の投稿を作成しましたが、理解できないエラーが発生します。

私は使用しています:

<script type="text/javascript" src="../Components/JQUERY/jquery-1.4.2.min.js"></script>    
<script type="text/javascript" src="../Components/JQUERY/jquery.validate.min.js"></script>

コードは次のとおりです。

  1. アクセス トークンを取得し、投稿する URL を準備します ( jQuery なしで投稿すると、Facebook に画像がアップロードされます)

    //....Facebook code for getting the access token...//
    
    // This is the URL that was originally in the form's action tag//
    $image_url= "https://graph.facebook.com/" . $ALBUM_ID . "/photos?"
    . "access_token=" .$access_token;
    
  2. フォームの HTML:

    <form name="myform" id="myform" enctype="multipart/form-data" action="" method="POST">
       Please choose a photo:
         <input name="source" type="file"><br/>
       Say something about this photo: <br/>
         <textarea id="fbText" name="message" rows="4" cols="47"> </textarea><br/><br/>
         <input type="submit" name="submit" value="Upload"/><br/>
    </form>
    
    <div id="results"></div>
    
  3. jQuery コード:

    <script type="text/javascript">
      $(document).ready(function(){
          $("#myform").validate({
              debug: false,
              rules: {
                  message: "required"   
              },
              messages: {
                  message: "Please insert text."
              },
              submitHandler: function(form) {
                  // do other stuff for a valid form
                  $.post('<?php echo $image_url ?>', $("#myform").serialize(), function(data) {
                    $('#results').html(data);
                });
            }
        });
    });
    </script>
    

アップロードボタンを押すと、次のエラーが表示されます。

ここに画像の説明を入力

私は何を間違っていますか?ありがとう。

4

1 に答える 1

1

マルチパート フォーム データを jquery post メソッドで投稿することはできません。もう 1 つの問題は、クロスドメイン通信です。ajax リクエストを別のドメインに送信することはできません。

代替手段については、を参照してください。

どのように iframe に投稿しますか?
http://jquery.malsup.com/form/#file-upload

Facebook の新しい JavaScript SDK - 写真をアップロードします。

ajaxを介してマルチパートデータを送信するには、これらのリンクを参照してください

jQueryを使用してmultipart/form-dataでHTTP POST呼び出しを行いますか?

jQuery.ajax で multipart/formdata を送信する

または 最後に、サーバーにアップロードして Facebook にアップロードできます。

[編集]

var options = { 
        beforeSubmit:  showRequest,  // pre-submit callback 
        success:       showResponse  // post-submit callback      
    }; 

    // bind form using 'ajaxForm' 
    $('#myForm1').ajaxForm(options); 
于 2012-06-28T07:40:26.113 に答える