菜鸟教程小白 发表于 2022-12-11 22:08:32

javascript - 缺少请求的请求 token


                                            <p><p>从电话簿中获取所有联系人并上传到服务器,但出现以下错误。 </p>

<p>在请求正文中附加图像时 <code>FormData</code> </p>

<p> <a href="/image/8fBnW.png" rel="noreferrer noopener nofollow"><img src="/image/8fBnW.png" alt="enter image description here"/></a> </p>

<p><strong>尝试过的代码</strong></p>

<p>传递文件 url 联系人 thumbnailPath </p>

<pre><code>const path = con.thumbnailPath
body.append(&#39;image&#39;, {
   uri: path,
   type: &#39;image/jpeg&#39;,
   name: &#39;photo.jpg&#39;,
   type: &#39;multipart/form-data&#39;
})
</code></pre>

<p><strong>尝试过的代码</strong></p>

<p>不带“file://”传递文件 url 联系人 thumbnailPath </p>

<pre><code>const path = con.thumbnailPath.replace(&#39;file://&#39;, &#39;&#39;)
body.append(&#39;image&#39;, {
   uri: path,
   type: &#39;image/jpeg&#39;,
   name: &#39;photo.jpg&#39;,
   type: &#39;multipart/form-data&#39;
})
</code></pre>

<p><strong>尝试过的代码</strong></p>

<p>使用 <code>react-native-fs</code></p> 检查路径上是否存在文件

<pre><code>if (con.thumbnailPath != &#39;&#39;) {
   let isExist = RNFS.exists(con.thumbnailPath)
   if (isExist) {
         const path = con.thumbnailPath.replace(&#39;file://&#39;, &#39;&#39;)
         console.log(&#34;Exist&#34;, path)
         body.append(&#39;image&#39;, {
             uri: path,
             type: &#39;image/jpeg&#39;,
             name: &#39;photo.jpg&#39;,
             type: &#39;multipart/form-data&#39;
         })
   }
}
</code></pre>

<p><strong>请求</strong></p>

<pre><code>fetch(url, {
    method: &#39;POST&#39;,
    headers: {
      &#39;Authorization&#39;: token,
      &#39;token&#39;: token
    },
    body: params
})
.then((res) =&gt; res.json())
.then((json) =&gt; {
    console.log(&#34;RESPONSE:- &#34;, json)
    if (json.response.status == &#39;false&#39;) {
      let msg = json.response.response_msg
      callback(new Error(msg), json.response)
    }
    else {
      callback(null, json.response)
    }
})
.catch((err) =&gt; {
    console.log(err)
    callback(err, null)
})
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>问题来自 <code>[email protected]</code> 的内部错误。</p>
<p>一个快速的解决方案是恢复这个提交:<a href="https://github.com/facebook/react-native/commit/31980094107ed37f8de70972dbcc319cc9a26339#diff-9a034658197479288c4d346a0eb4d98c" rel="noreferrer noopener nofollow">https://github.com/facebook/react-native/commit/31980094107ed37f8de70972dbcc319cc9a26339#diff-9a034658197479288c4d346a0eb4d98c</a> </p>
<p>在 <code>node_modules</code> 中手动还原此提交后,重新编译应用程序,图像上传将正常工作。</p>
<p>将 <code>/Libraries/Image/RCTLocalAssetImageLoader.mm</code> 中的函数 <code>loadImageForURL</code> 替换为:</p>
<pre><code> - (RCTImageLoaderCancellationBlock)loadImageForURL:(NSURL *)imageURL
                                           size:(CGSize)size
                                          scale:(CGFloat)scale
                                     resizeMode:(RCTResizeMode)resizeMode
                              progressHandler:(RCTImageLoaderProgressBlock)progressHandler
                           partialLoadHandler:(RCTImageLoaderPartialLoadBlock)partialLoadHandler
                              completionHandler:(RCTImageLoaderCompletionBlock)completionHandler
{
   __block auto cancelled = std::make_shared&lt;std::atomic&lt;bool&gt;&gt;(false);
   RCTExecuteOnMainQueue(^{
   if (cancelled-&gt;load()) {
       return;
   }

   UIImage *image = RCTImageFromLocalAssetURL(imageURL);
   if (image) {
       if (progressHandler) {
         progressHandler(1, 1);
       }
       completionHandler(nil, image);
   } else {
       NSString *message = ;
       RCTLogWarn(@&#34;%@&#34;, message);
       completionHandler(RCTErrorWithMessage(message), nil);
   }
   });

   return ^{
   cancelled-&gt;store(true);
   };
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于javascript - 缺少请求的请求 token ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/54663887/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/54663887/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: javascript - 缺少请求的请求 token