JSON para Asp.Net dentro de um Web Worker. Não é possível encontrar o método dentro do Controlador
-
27-10-2019 - |
Pergunta
Estou enviando um JSon ao meu Asp.Net MVC 3 controlador que está dentro de um trabalhador Web (usando jquery-hive). No PostMessage, posso capturar um erro de Asp.Net me dizendo que ele encontrar o controlador, mas não tem método de ação X.
Veja o código: Aqui eu chamo o trabalhador no main.js:
var worker = new Worker('models/worker.js');
worker.onmessage = function (event) {
var a = event;
};
worker.postMessage(null);
O código em worker.js:
importScripts('hive.pollen.js'); $(function (msg) {
$.ajax.get({
url: '/Search/Method1/',
dataType: 'POST',
data: null,
success: function (jsonObj) {
$.send( jsonObj);
}
});
});
O controlador tem esse método:
[HttpPost]
public JsonResult Method1(string test)
{
return Json("worked! " + test);
}
O posMessage que o trabalhador dê-me para trás, é um erro asp.net.
[HttpException]: Um método de ação pública "Method1" não foi encontrado no controlador SearchController
Solução
Parece que você está emitindo um pedido GET ($ .ajax.get método).
Tente usar jQuery $ .post ()
Outras dicas
Você tem um erro em:. dataType: 'POST'
No seu caso, você tem que colocar dataType: 'json'
, a fim de enviar os dados no formato correto