VB.NET JSON для Angular - PullRequest
       2

VB.NET JSON для Angular

0 голосов
/ 20 сентября 2019

У меня есть простой ответ Hello World на стороне сервера углового проекта.Код, который у меня есть в PHP, работает нормально (как и все, что у меня есть), но когда я хочу поместить тот же код в VB.NET, он выдает ошибку.

Вот код из PHP:

<?
header("Access-Control-Allow-Origin: *");
header("Access-Control-Max-Age: 1000");
header("Access-Control-Allow-Methods: POST");
header('Access-Control-Allow-Headers: X-Requested-With, content-type, access-control-allow-origin, access-control-allow-methods, access-control-allow-headers');
ini_set("allow_url_fopen", true);

class mySample{
    var $Msg;
}

$smp= new mySample;
$smp->Msg= "Hello world";
$encoded= json_encode($smp);

echo $encoded;
exit;

?>

Что отвечает в консоли JS: {Msg: "Hello world"}

А вот код VB.NET

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim smp As New mySample
smp.Msg= "Hello World"
Dim serializar as New JavaScriptSerializer()
Dim serializedResult = serializer.Serialize(smp)
Response.Write(serlizedResult)

Public Class mySample
   Public Msg As String
End Class

, который в консоли JS ответил: SyntaxError: Неожиданный токен <в JSON в позиции 25 </p>

Вот вызов из Angular:

getHello(){
    this.theService.tryHello()
    .subscribe(
      (res)=>{
        console.log("Response: ", res);
      },
      err => {
        console.log("Error: ", err);
      }
    );
  }

И служба

tryHello(): Observable<any>{
    let theRequest: Request = new Request;
    return this.http.post<any>(this.serviceURL, {data:theRequest}, {responseType: 'json'});
  }

Если вы запускаете оба кода поих соответствующие URL-адреса они оба возвращают один и тот же вывод JSON {"Msg": "Hello world"}, но если вы вызываете их через службу Angular, он возвращает ошибку

Благодаря предложению Anbyer я проверил ответ ввкладка Сеть, и она пишет весь ответ:

{"Msg":"Hello world"}

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
    Prueba Angular
</title><meta http-equiv="Content-Type" content="application/json;" />
</head>
<body>
    <form method="post" action="./Angular.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="7hDt0OESfSW/sWZ4gxieAgY/Lt6zwUgec+uMjusifBwfSMANmIjbPh40/H45bWdn8GPlP/8sJFktsUA4QvKmFOuNKVSp4+2MTalY4fgDiBs=" />
</div>

<div class="aspNetHidden">

    <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="BCA76F28" />
</div>
        <div>

        </div>
    </form>
</body>
</html>

Я предполагаю, что весь проект настроен на вывод документа HTML, какие-либо предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...