#node.js #express #google-chrome-extension #routes #mean-stack
#node.js #выразить #google-chrome-расширение #маршруты #средний стек
Вопрос:
Я разрабатываю приложение на MEAN stack, которое может загружать изображение с диска в приложении, или мы можем отправить изображение с помощью расширения Chrome. Теперь я загрузил изображение с диска, но когда я пытаюсь отправить изображение с помощью расширения Chrome. По этому URL «http://localhost:9000/api/look/upload «; Выдает ошибку 401 несанкционированный
Я прикрепляю маршрут.js код, если какой-либо разработчик стека укажет мне, где именно ошибка? Я также загружу файл. Заранее благодарю вас
/**
* Main application routes
*/
'use strict';
var errors = require('./components/errors');
var auth = require('./auth/auth.service');
var path = require('path');
module.exports = function(app) {
// Insert routes below
app.use('/api/users', require('./api/user'));
app.use('/auth', require('./auth'));
app.use('/api/look', require('./api/look'));
app.use('/api/links', require('./api/imgScraper'));
app.use('/api/comments', require('./api/comments'));
app.post('/forgotpassword', require('./forgotpassword').reset);
// All undefined asset or api routes should return a 404
app.route('/:url(api|auth|components|app|bower_components|assets)/*')
.get(errors[404]);
app.route('/*')
.get(function(req, res) {
res.sendFile(path.resolve(app.get('appPath') '/index.html'));
});
};
module.exportstest = function(app) {
app.use('/api/looktest', require('./api/looktest'));
};
JSON CODE Is here:
JSON CODE:
{
"name": "IBR Extension",
"version": "1.3",
"description": "Demonstrate screenshot functionality in the chrome.tabs api.",
"background": {
"persistent": false,
"scripts": ["ExtensionWorking.js"]
},
"browser_action": {
"default_icon": "camera.png",
"default_title": "Take a screen shot!"
},
"permissions": [
"tabs",
"activeTab",
"downloads",
"<all_urls>"
],
"manifest_version": 2
}
XHR code is here:
function reportBug(){
var imageData = document.getElementById("canvas").toDataURL();
var xhttp = new XMLHttpRequest();
var params = "imageData=" imageData;
var url = "http://localhost:9000/api/look/upload";
xhttp.open( "POST", url, true ); // false for synchronous request
xhttp.send( params );
return xhttp.responseText;
}
Upload function is here:
exports.upload = function(req, res) {
console.log('abc');
var newLook = new Look();
var fileimage = req.middlewareStorage.fileimage;
console.log(req.body "test test");
newLook.image = '/assets/images/uploads/' fileimage;
newLook.email = req.body.email;
newLook.linkURL = req.body.linkURL;
newLook.title = req.body.title;
newLook.description = req.body.description;
newLook.userName = req.body.name;
newLook._creator = req.body._creator;
newLook.createTime = Date.now();
newLook.upVotes = 0;
newLook.save(function(err, look) {
if(err) {
console.log('error saving look');
return res.send(500);
} else {
console.log(look);
res.status(200)
.send(look);
}
});
};
Комментарии:
1. Ошибка отображается для кода расширения, поэтому ваш вопрос должен включать расширение manifest.json и имя файла, в котором вызывается XHR: будь то сценарий содержимого, всплывающее окно или фоновый сценарий.
2. Отправка изображения обычно является запросом POST. Вместо
.get()
использования.post()
. Посмотрим, сработает ли это.3. Добавлен код. Пожалуйста, проверьте
4. проверено с помощью .post() все та же ошибка
5. Не следует ли вам зарегистрировать маршрут для
/api/look/upload
?