I published an ASP.NET MVC application to Godaddy. I'm having an issue with an Ajax call that is supposed to return a JSON object it returns the HTML of my site's index page. I previously had a problem with the app's menu bar links, where they were redirecting to my site's main page. I was able to solve the problem by adding a rule to my site's web.config that excluded the subfolder containing the app: <add input="{REQUEST_URI}" pattern="^/(codesnippetapp)" negate="true" />
I checked the dev console in Chrome and the request URL is wrong. The URL should be http://www.mattdailey.net/codesnippetapp/Home/GetCodeData instead it is http://www.mattdailey.net/Home/GetCodeData
Here is the Ajax call and the JsonResult functions that retrieve the JSON:
$.ajax({
url: '/Home/GetCodeData',
type: 'Post',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify(selectedSnippetID),
success: function (data) {
if (data.success) {
$("#snippetcode").val(data.snippetCode);
} else {
alert('invalid ID' + data.success);
}
}
});
[HttpPost]
public JsonResult GetCodeData(int snippetID)
{
CodeSnippet returnedsnippet = db.CodeSnippets.FirstOrDefault(d => d.Id == snippetID);
if (returnedsnippet != null)
{
return Json(new { success = true, snippetCode = returnedsnippet.SnippetCode });
}
return Json(new { success = false });
}
What do I need to add to my app's web.config? Or do I need to add code to my site's web.config?
UPDATE: I tried using the GET method but got an internal server error. I moved the script from an external file into the View itself by using the razor @section code like this:
@section Scripts
{
... jQuery code
}
Then added this to the _Layout.cshtml:
@RenderSection("Scripts", required: false)
I did add the razor @Url.Action helper to the Ajax url. I also changed the way I publish the application to Godaddy, which I think helped too. I changed from the FTP method to Filesystem. I then uploaded the files manually via FTP. It's now working.
Thanks everyone for the help. I wrote out my steps hoping this will help someone else in a similar situation.