2013-06-12 4 views
0

Когда я ввожу URL-адрес http: //localhost/login/login.aspx в свой браузер, я вижу, что мой ответ {success: true}. Когда я запускаю свою загрузку моей html-страницы, я вижу, что от Fiddler и отладчика вызывается страница aspx; однако на мой javascript ничего не возвращается, и он переходит в FAILURE вместо SUCCESS.ExtJS не получает ответ от POST

Я использовал этот url в других проектах программирования, но это мой первый раз, используя его с Ext JS. Я видел различные примеры онлайн, и никто, кажется, не исправил мою проблему. Ниже мой файл javascript, и любая помощь будет оценена в получении успешного возврата на мой клик.

Таким образом, он не вводит мой код C# из вызова javascript, даже если подумал, что скрипт показывает, что вызов выполняется по адресу http: //localhost/login/login.aspx.

Любая помощь была бы принята с благодарностью.

Ext.require([ 
    'Ext.form.*', 
    'Ext.window.Window' 
]); 

Ext.onReady(function() { 

    Ext.QuickTips.init(); 

    var field = new Ext.form.field.Text({ 
     renderTo: document.body 
    }), 
     fieldHeight = field.getHeight(), 
     padding = 5, 
     remainingHeight; 

    field.destroy(); 

    remainingHeight = padding + fieldHeight * 2; 

    var login = new Ext.form.Panel({ 
     border: false, 
     fieldDefaults: { 
      msgTarget: 'side', 
      labelWidth: 100 
     }, 
     defaultType: 'textfield', 
     bodyPadding: padding, 

     items: [{ 
      xtype: 'box', 
      region: 'west', 
      width: 128, 
      height: 46, 
      autoEl: { tag: 'img', src: 'images/logo.png' }, 
      style: 'margin: 10px 0px 15px 15px' 
     }, { 
      allowBlank: false, 
      fieldLabel: 'Company Name', 
      name: 'company', 
      emptyText: 'Company ID', 
      style: 'margin: 10px 0px 10px 30px' 
     }, { 
      allowBlank: false, 
      fieldLabel: 'User ID', 
      name: 'user', 
      emptyText: 'User Name', 
      style: 'margin: 10px 0px 10px 30px' 
     }, { 
      allowBlank: false, 
      fieldLabel: 'Password', 
      name: 'pass', 
      emptyText: 'Password', 
      inputType: 'password', 
      style: 'margin: 10px 0px 10px 30px' 
     }] 
    }); 

    new Ext.window.Window({ 
     autoShow: true, 
     title: 'Support Tools Login', 
     resizable: false, 
     closable: false, 
     width: 350, 
     height: 250, 
     layout: 'fit', 
     plain: true, 
     items: login, 
     constrain: true, 
     draggable: false, 

     buttons: [{ 
      text: 'Login', 
      formBind: true, 

      handler: function() { 
       login.getForm().submit({ 
        method: 'POST', 
        url: 'http://localhost/login/login.aspx', 
        waitTitle: 'Connectiong', 
        waitMsg: 'Sending data...', 

        success: function (login, action) { 
         Ext.Msg.alert('Success'); 
        }, 

        failure: function (login, action) { 
         Ext.Msg.alert('Failure') 
        } 
       }); 
      } 
     }] 
    }); 
}); 

Aspx файл:

using System; 
using System.Diagnostics; 
using System.Web; 
using SupportToolsCommon; 

namespace App.login 
{ 
    public partial class login : System.Web.UI.Page 
    { 
     private static Database db; 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      Response.Clear(); 
      Response.Write("{success: true}"); 
      Response.End(); 
     } 
    } 
} 

default.html страница

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
    <title>Login Page</title> 
    <!-- ExtJS --> 
    <script type="text/javascript" src="extjs/ext-all.js"></script> 

    <!-- CSS --> 
    <link rel="stylesheet" type="text/css" href="css/support-tools.css" /> 
    <link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css" /> 

    <script type="text/javascript" src="scripts/login.js"></script> 
</head> 

<body id="login-page"></body> 

</html 

ответ

0

Попробуйте заменить эту строку:

Response.Write("{success: true}"); 

с хорошо сформированных в формате JSON (имена свойств должны быть все заключенный в кавычки в JSON, в отличие от javascr ipt):

Response.Write("{\"success\": true}"); 
+0

Я сделал то, что вы предлагали, но по-прежнему возвращается как отказ. Пока что единственный успех, который я видел, - это http://jsfiddle.net/rixo/84CPU/. Я даже попытался использовать эхо-URL из jsfiddle, чтобы повторить ответ на мой код, и он тоже не удался. http://fiddle.jshell.net/echo/json/ – mdupre1980

+0

Вы не можете отправить свою форму в jsFiddle, потому что, как я уже сказал, вы ** должны ** отправить URL-адрес в том же домене. Вы можете увидеть сообщение об ошибке в консоли: http://jsfiddle.net/rixo/84CPU/2/? Вы утверждаете, что не получаете такую ​​ошибку в коде, который вы отлаживаете, не так ли? – rixo

+0

Ничего себе, я чувствую себя идиотом. Спасибо, что нашли время, чтобы описать это для меня. Я не знаю, почему междоменная проблема не погружалась в мою голову. Конечно ... теперь, когда я все звоню с локального хоста, теперь он отлично работает. Еще раз спасибо за терпение! – mdupre1980

Смежные вопросы