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('image', {
uri: path,
type: 'image/jpeg',
name: 'photo.jpg',
type: 'multipart/form-data'
})
</code></pre>
<p><strong>尝试过的代码</strong></p>
<p>不带“file://”传递文件 url 联系人 thumbnailPath </p>
<pre><code>const path = con.thumbnailPath.replace('file://', '')
body.append('image', {
uri: path,
type: 'image/jpeg',
name: 'photo.jpg',
type: 'multipart/form-data'
})
</code></pre>
<p><strong>尝试过的代码</strong></p>
<p>使用 <code>react-native-fs</code></p> 检查路径上是否存在文件
<pre><code>if (con.thumbnailPath != '') {
let isExist = RNFS.exists(con.thumbnailPath)
if (isExist) {
const path = con.thumbnailPath.replace('file://', '')
console.log("Exist", path)
body.append('image', {
uri: path,
type: 'image/jpeg',
name: 'photo.jpg',
type: 'multipart/form-data'
})
}
}
</code></pre>
<p><strong>请求</strong></p>
<pre><code>fetch(url, {
method: 'POST',
headers: {
'Authorization': token,
'token': token
},
body: params
})
.then((res) => res.json())
.then((json) => {
console.log("RESPONSE:- ", json)
if (json.response.status == 'false') {
let msg = json.response.response_msg
callback(new Error(msg), json.response)
}
else {
callback(null, json.response)
}
})
.catch((err) => {
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<std::atomic<bool>>(false);
RCTExecuteOnMainQueue(^{
if (cancelled->load()) {
return;
}
UIImage *image = RCTImageFromLocalAssetURL(imageURL);
if (image) {
if (progressHandler) {
progressHandler(1, 1);
}
completionHandler(nil, image);
} else {
NSString *message = ;
RCTLogWarn(@"%@", message);
completionHandler(RCTErrorWithMessage(message), nil);
}
});
return ^{
cancelled->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]