Heim > Backend-Entwicklung > PHP-Tutorial > [又拍云]通过jquery调用表单API出现401错误

[又拍云]通过jquery调用表单API出现401错误

WBOY
Freigeben: 2016-06-06 20:44:54
Original
1520 Leute haben es durchsucht

源代码如下:

<code class="lang-javascript">
  
    <meta charset="utf-8">
    <script src="../qddian/js/jquery.js"></script>
  
  
    <form action="http://v0.api.upyun.com/<?php%20echo%20%24bucket?>" method="post" enctype="multipart/form-data">
      <!-- 需要传递以下三个表单内容 -->
      <input type="hidden" name="policy" value="<?php echo $policy?>">
      <input type="hidden" name="signature" value="<?php echo $signature?>">
      <input type="file" name="file">
      <a id="upload" href="#">上传</a>
    </form>
  

<script>
    $(function(){
        $('a#upload').click(function(){
            //$('form').submit();

            $.post(
                'http://v0.api.upyun.com/<?php echo $bucket; ?>',
                {
                    file: $('input[name=file]').val(),
                    policy: $('input[name=policy]').val(),
                    signature: $('input[name=signature]').val()
                },
                function(data){
                    alert('Data: ' + data);
                }
            );

            return false;
        });
    });
</script>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

通过上述方式则提示"401 Unauthorized sign error",但通过$('form').submit()方式提交则返回200成功。截图如下,请各位大牛协助解决一下,不胜感激!

[又拍云]通过jquery调用表单API出现401错误
[又拍云]通过jquery调用表单API出现401错误
[又拍云]通过jquery调用表单API出现401错误

回复内容:

源代码如下:

<code class="lang-javascript">
  
    <meta charset="utf-8">
    <script src="../qddian/js/jquery.js"></script>
  
  
    <form action="http://v0.api.upyun.com/<?php%20echo%20%24bucket?>" method="post" enctype="multipart/form-data">
      <!-- 需要传递以下三个表单内容 -->
      <input type="hidden" name="policy" value="<?php echo $policy?>">
      <input type="hidden" name="signature" value="<?php echo $signature?>">
      <input type="file" name="file">
      <a id="upload" href="#">上传</a>
    </form>
  

<script>
    $(function(){
        $('a#upload').click(function(){
            //$('form').submit();

            $.post(
                'http://v0.api.upyun.com/<?php echo $bucket; ?>',
                {
                    file: $('input[name=file]').val(),
                    policy: $('input[name=policy]').val(),
                    signature: $('input[name=signature]').val()
                },
                function(data){
                    alert('Data: ' + data);
                }
            );

            return false;
        });
    });
</script>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

通过上述方式则提示"401 Unauthorized sign error",但通过$('form').submit()方式提交则返回200成功。截图如下,请各位大牛协助解决一下,不胜感激!

[又拍云]通过jquery调用表单API出现401错误
[又拍云]通过jquery调用表单API出现401错误
[又拍云]通过jquery调用表单API出现401错误

401的错误是签名的问题:
401:Unauthorized 访问未授权
401:Sign error 签名错误(操作员和密码,或签名格式错误)
sign error:
检查签名格式是否和又拍接口文档中一致。
Unauthorized:
错误检查空间名,操作员,密码等信息填写是否正确,上传路径是否有根“/”开始。
你可以参考下以上错误提示。

这个错误详细查看upyun的API http://www.upyun.com/intro/api-errors.php

另外使用jQuery的post是无法上传文件的,

<code class="lang-javascript">$('input[name=file]').val()
</code>
Nach dem Login kopieren

获取的只是上传文件的本地路径。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage