Я работаю с API OutBrain и пытаюсь получить некоторые данные с сервера.Asp.net - кнопка не работает
Я сделал простую HTML-страницу, которая просто берет идентификатор маркетолога и возвращает его имя.
Когда я нажимаю кнопку, ничего не происходит. Может кто-нибудь сказать мне, что моя проблема?
Я использую визуальную студию 2013 и работаю с MVC ASP.NET.
Спасибо!
Код:
index.cshtml
@{
ViewBag.Title = "Home Page";
}
<br />
<div class="details">
<label>Enter Marketer ID</label>
<input type="text" class="form-control" id="marketerID">
<button type="button" class="btn btn-default" id="buttonB">OK</button>
<section class="details">
<div class="name">
<label>Name</label>
<label id="nameMarketer"></label>
</div>
</section>
</div>
<script src="~/Scripts/outBrain.js"></script>
outBrain.js
$("#buttonB").on('click', function() {
function getMarketer()
{
$.ajax(
{
url: "/home/GetOutBrainMarketers",
data: { id: $("marketerID").val() },
success: function (result) {
var marketer = JSON.parse(result);
document.getElementById("nameMarketer").innerHTML = (marketer.name);
}
}
)
}
});
HomeController.cs
namespace OutBrain_test.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
public async Task<string> GetOutBrainMarketers(string ID)
{
var baseAddress = new Uri("https://api.outbrain.com/amplify/v0.1/marketers/" + ID);
using (var httpClient = new HttpClient { BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("OB-TOKEN-V1", AuthorizeOutBrain().Result);
using (var response = await httpClient.GetAsync("marketers/"+ ID))
{
string responseData = await response.Content.ReadAsStringAsync();
return responseData;
}
}
}
public async Task<string> AuthorizeOutBrain()
{
var baseAddress = new Uri("https://api.outbrain.com/amplify/v0.1/login");
using (var httpClient = new HttpClient { BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("authorization", "BASIC BASE-64-ENC(my-username:my-pass)");
using (var response = await httpClient.GetAsync("login"))
{
string responseData = await response.Content.ReadAsStringAsync();
return responseData;
}
}
}
}
}
Почему вы заключаете '$ .ajax' на' функции getMarketer'? Что это значит? –
ОК, хорошо, возможно, это моя проблема, но так? – Tal
Попробуйте развернуть его и снова нажать. –