So mache ich einige Ajax Post und es scheint auf dem localhost gut zu funktionieren, aber wenn ich es auf ec2 Server auf Amazon veröffentlichen, bekomme ich Uncaught SyntaxError: Unexpected Token B. Was auf JSON-Analysefehler zu zeigen scheint. Genau dieselbe Datenbank, derselbe Browser und dieselben Methoden werden aufgerufen. Warum sollte es lokal und nicht auf dem Server funktionieren?Uncaught SyntaxError: Unerwarteter Token B auf Live aber nicht lokalen Server
$.ajax({
url: '@Url.Action("Action")',
type: "POST",
data: ko.toJSON(viewModel),
dataType: "json",
contentType: "application/json; charset:utf-8",
success: function (result) {
},
error: function (xhr, textStatus, errorThrown) {
var errorData = $.parseJSON(xhr.responseText);
var errorMessages = [];
for (var key in errorData)
{
errorMessages.push(errorData[key]);
}
toastr.error(errorMessages.join("<br />"), 'Uh oh');
}
});
Hier wird das Grundlayout auf der Server-Seite ist:
[HttpPost]
public JsonResult Action(ViewModel model)
{
try
{
Response.StatusCode = (int)HttpStatusCode.OK;
return Json("Successfull");
}
catch (Exception ex)
{
logger.Log(LogLevel.Error, string.Format("{0} \n {1}", ex.Message, ex.StackTrace));
Response.StatusCode = (int)HttpStatusCode.BadRequest;
List<string> errors = new List<string>();
errors.Add(ex.Message);
return Json(errors);
}
}
Im Anweisung versuchen, mache ich ein paar Anfragen an die Datenbank und schreiben einige Berechnungen auf Authorize.Net (https://api.authorize.net/soap/v1/Service.asmx)
Wenn es einen Fehler mit Authorize.net Web Serviceaufrufen gibt, dann gebe ich Fehler wie folgt zurück:
if (profile.resultCode == MessageTypeEnum.Error)
{
logger.Log(LogLevel.Error, string.Join(",", profile.messages.Select(x => x.text)));
Response.StatusCode = (int)HttpStatusCode.BadRequest;
List<string> errors = new List<string>();
profile.messages.ToList().ForEach(x => errors.Add(x.text));
db.SaveChanges();
return Json(errors);
}
Dieser Fehler, die ich Anmeldung:
A public action method 'AddPromoCode' was not found on controller 'Flazingo.Controllers.PositionController'. at
System.Web.Mvc.Controller.HandleUnknownAction(String actionName) at
System.Web.Mvc.Controller.ExecuteCore() at
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) at
System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.b__5() at
System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.b__0() at
System.Web.Mvc.MvcHandler.<>c__DisplayClasse.b__d() at
System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
completedSynchronously)
Das klingt wie ein Server-Problem. Können Sie den serverseitigen Code hinter @ Url.Action ("Action") freigeben? – CodeThug
@CodeThug Ich habe die serverseitigen Codes hinzugefügt. – jmogera
@CodeThug irgendwelche Ideen. Bitte helfen Sie! – jmogera