Я написал расширение для браузера Chrome, которое использует Ajax для отправки данных на контроллер MVC3.Чтобы убедиться, что код контроллера работает, я сначала написал веб-страницу Razor для создания прототипа кода ajax.Этот код работает на веб-странице, модель JSON связывает все.Я опубликовал его на сервере IIS7 с узлом DNS и именем домена.Код все еще работает на тестовой странице.
function addUrl()
{
$('#res').html('Adding...');
var myData = { url: $('#urlDiv').html(), comments: $('#c1').val() };
$.ajax(
{
url: 'http://hostname.domainname/ControllerName/AddUrl',
type: "post",
dataType: "json",
data:JSON.stringify(myData),
contentType: "application/json; charset=utf-8",
success: function (result)
{
$('#res').html(result);
},
error: function()
{
$('#res').html('An error occurred');
}
}
);
};
Я скопировал эту функцию jQuery в файл Chrome JavaScript и вызвал ее из всплывающего окна с помощью обычной кнопки формы.
<body onload="buildPopupDom();">
<form>
<h2>Add URL</h2>
<div id='urlDiv'></div>
<p>Comments<br /><textarea id="c1" cols="80" rows="3"></textarea></p>
<p><input type="button" value="Save" id="s1" onclick="addUrl();" /> <input type="button" value="Close" onclick="javascript:window.close();" /></p>
</form>
По какой-то причине сообщения из расширения Chrome вызывают ошибку 404, и мне пришло в голову, что какая-то защита MVC3 XSS или аналогичная блокирует сообщение - или, возможно, что-то в IIS7 (UrlScan не установлен).