J'ai ce script chargé sur une page:Asp.net MVC jQuery Ajax appelle à JsonResult renvoyaient aucune donnée
(function() {
window.alert('bookmarklet started');
function AjaxSuccess(data, textStatus, xmlHttpRequest) {
if (typeof (data) == 'undefined') {
return alert('Data is undefined');
}
alert('ajax success' + (data || ': no data'));
}
function AjaxError(xmlHttpRequest, textStatus, errorThrown) {
alert('ajax failure:' + textStatus);
}
/*imaginarydevelopment.com/Sfc*/
var destination = { url: 'http://localhost:3041/Bookmarklet/SaveHtml', type: 'POST', success: AjaxSuccess, error: AjaxError,
dataType: 'text',contentType: 'application/x-www-form-urlencoded'
};
if (typeof (jQuery) == 'undefined') {
return alert('jQuery not defined');
}
if (typeof ($jq) == 'undefined') {
if (typeof ($) != 'undefined') {
$jq = $;
} else {
return alert('$jq->jquerify not defined');
}
}
if ($jq('body').length <= 0) {
return alert('Could not query body length');
}
if ($jq('head title:contains(BookmarkletTest)').length > 0) {
alert('doing test');
destination.data = { data: 'BookmarkletTestAjax' };
$jq.ajax(destination);
return;
}
})();
lorsqu'il est exécuté localement dans Cassini VS2008 le succès ajax montre la chaîne retournée de Asp.net MVC, lorsqu'il est exécuté à distance, les données de succès ajax sont nulles. Voici la méthode du contrôleur qui tire à la fois localement et quand ils sont exécutés à distance:
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
public string SaveHtml(string data)
{
var path = getPath(Server.MapPath);
System.IO.File.WriteAllText(path,data);
Console.WriteLine("SaveHtml called");
Debug.WriteLine("SaveHtml called");
//return Json(new { result = "SaveHtml Success" });
return "SaveHtml Success";
}
Une fois que je l'ai travail que j'allais supprimer l'EEG, mais l'accès à l'heure actuelle la méthode saveHTML directement à partir du navigateur Web produit les résultats escomptés lors du test . Donc, il y a quelque chose qui cloche dans mon javascript, je crois, parce que quand j'y arrive avec les outils de développement de chrome, je vois que les données sont nulles, et le xmlHttpRequest ne semble pas avoir le résultat escompté là non plus.
Je suis chargement jquery via http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
bien ... la demande fonctionne, les données sont envoyées, la réponse ajax est un succès, mais il n'y a pas de données dans la réponse. Il est inter-site, mais comme api feuille de calcul de Google et ces 2 ressources disent que c'est faisable: http://www.west-wind.com/Weblog/posts/107136.aspx http://jeffancel.com/archive/2009/ 04/05/70.aspx http://code.google.com/apis/gdata/docs/json.html – Maslow
Vous ne faites pas cela avec JSONP, cependant - vous essayez simplement de faire un XMLHttpRequest simple. Vous devez indiquer à jQuery que vous voulez utiliser JSONP, et le serveur doit s'y attendre et savoir répondre avec le bon type de texte JSON/Javascript. – Pointy
pouvez-vous expliquer cela un peu plus en détail? Je ne vous attrape pas – Maslow