Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Request.ServerVariables("..")赋值给变量时返回undefined,但其值可以通过Response.Write("..")显示

Request.ServerVariables("..")赋值给变量时返回undefined,但其值可以通过Response.Write("..")显示
EN

Stack Overflow用户
提问于 2020-09-04 22:37:44
回答 2查看 192关注 0票数 0

我正在尝试检索用户的IP地址并将其分配给一个变量:

代码语言:javascript
运行
AI代码解释
复制
var ipAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR") || 
                Request.ServerVariables("REMOTE_ADDR") || 
                Request.ServerVariables("HTTP_HOST"); 

Response.Write(Request.ServerVariables("HTTP_HOST") + "<br />\n\n");    // produces "localhost"
Response.Write(Request.ServerVariables("REMOTE_ADDR") + "<br />\n\n");  // produces "::1"
Response.Write(Request.ServerVariables("HTTP_X_FORWARDED_FOR") + "<br />\n\n"); // produces "undefined"
Response.Write("ipAddress = " + typeof ipAddress + " " + ipAddress + "<br />\n\n");     // produces "ipAddress = object undefined"

我使用的是JScript for Classic ASP。在这一点上,我不确定该怎么做。有人能帮上忙吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2020-09-05 18:33:02

使用JScript的ASP和使用VBScript的ASP有一点不同。

因为在JavaScript中一切都是对象,所以使用var ipAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")可以获得对象引用而不是字符串值,因为与大多数其他Request集合一样,ServerVariablesIStringList对象的集合

因此,要使短路求值像您所期望的那样工作,您需要处理值,而不是对象引用。

如果存在值(键存在),则可以使用Item方法返回IStringList对象的字符串值,否则返回一个Empty值,该值在JScript中的计算结果为undefined

代码语言:javascript
运行
AI代码解释
复制
var ipAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR").Item || 
                Request.ServerVariables("REMOTE_ADDR").Item || 
                Request.ServerVariables("HTTP_HOST").Item; 
票数 2
EN

Stack Overflow用户

发布于 2020-09-05 16:52:53

我解决了获取IP地址的问题,JScript的真假是一场彻头彻尾的噩梦。

代码语言:javascript
运行
AI代码解释
复制
if (!String.prototype.isNullOrEmpty) {
        String.isNullOrEmpty = function(value) {
            return (typeof value === 'undefined' || value == null || value.length == undefined || value.length == 0);
        };
}

var ipAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR") || 
                Request.ServerVariables("REMOTE_ADDR") || 
                Request.ServerVariables("HTTP_HOST"); 

function getIPAddress() {
        try {
            if (String.isNullOrEmpty(ipAddress)) {
                ipAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR");
            }
            
            if (String.isNullOrEmpty(ipAddress)) {
                ipAddress = Request.ServerVariables("REMOTE_ADDR");
            }
            
            if (String.isNullOrEmpty(ipAddress)) {
                ipAddress = Request.ServerVariables("HTTP_HOST");
            }
        } catch (e) {
            Response.Write("From getIPAddress(): " + e.message);
            hasErrors = true;
        } finally {
            return ipAddress;
        }
}


    ipAddress = getIPAddress();
    Response.Write("ipAddress = " + typeof ipAddress + " " + ipAddress + "<br />\n\n");     // produces "object localhost"
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63748751

复制
相关文章
Vue.js 组件
组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树:
陈不成i
2021/07/27
4.4K0
Vue.js组件
组件: 顾名思义, 也就是组成的部件, 即整体的组成部分 这个组成部分是可以缺少的,但是其存在的意义是无可替代的 这个组成部分也是可以复用的 全局方法一: 大致可以分成三步 1.在我们引入vue.js之后,Vue会被注册为一个全局对象,我们使用对象本身的方法进行组件的创建 ------使用Vue这个全局对象的component方法进行全局注册一个组件
河湾欢儿
2018/09/06
9K0
Vue.js的组件、组件间通信
props定义了这个组件有哪些可配置的属性,props最好用对象的写法,这样可以针对每个属性设置类型、默认值或自定义校验属性的值。
用户3258338
2020/05/22
10.3K0
vue.js组件初探
一个页面的ui可以切割成由不同的组件构成,这些组件毕竟独立,这样拆分的好处在于可以做到如同堆积木般快速将页面搭建及重构
章鱼喵
2018/08/02
2.8K0
vue.js组件初探
vue.js组件切换
vue.js多个组件之间进行切换,可以有多种方式,以下列举几种作为范例: 通过事件进行切换 声明两个组件 <template id="login"> <h3>登录组件</h3> </template> <template id="register"> <h3>注册组件</h3> </template> 使用@click事件进行切换 <button class="btn btn-success" @click="flag=true">登录</button> <button class="btn
章鱼喵
2018/08/02
6.8K0
vue.js组件切换
在 Vue.js 中使用无状态组件[每日前端夜话0xB9]
同时,Vue 实例是一个 ViewModel,它包含的选项包括表示元素的模板、要安装的元素、方法和初始化时的生命周期钩子。
疯狂的技术宅
2019/09/05
2K0
在 Vue.js 中使用无状态组件[每日前端夜话0xB9]
Vue.js组件的重要选项
实例化Vue对象一些很重要的选项,Vue的所有数据都是放在data里面的,Vue的参数是个对象,对象里面的字段叫做data,data里面也是对象,data也可以写作是this.a,this.b来取到数据 2:methods是一个方法,这个方法打印出 了a的数值,取到data里面的数据 3:监听 我们监听了data数据里面的a, a对应的是一个方法,意思就是我们监听所有a的变化,a在dosomething进行了一个加1 的操作,watch指定的这个方法就会去执行,所以val的值是2,oldval的值还是
王小婷
2018/06/01
1.5K0
自定义事件在 Vue.js 组件中的应用
Vue.js 组件的自定义事件可以让子组件向父组件传递数据,非常方便实用。在使用自定义事件时,我们可以使用 v-on 来绑定事件,每个 Vue 实例都实现了事件接口,即使用 $on(eventName) 监听事件和使用 $emit(eventName) 触发事件。此外,在父组件中,我们可以使用 v-on 来监听子组件触发的事件。
iOS程序应用
2023/03/15
4.1K0
自定义事件在 Vue.js 组件中的应用
Vue.js动态组件解析
什么是动态组件绑定?简单的说,就是几个组件放在一个挂载点下,然后根据父组件的某个变量来决定显示哪个,或者都不显示。
张张
2019/12/25
4.3K0
cssjshtml vue.js 组件嵌套
/src/components/Users.vue <template> <div class="users"> <ul> <li v-for="user in users">{{user}}</li> </ul> </div> </template> <script> export default { name: "users", data() { return {users: ["brownwang", "wangzi", "hulu"]}
葫芦
2019/04/17
2.8K0
vue.js之组件篇
组件(Component)是 Vue.js 最强大的功能之一,组件可以扩展 HTML 元素,封装可重用的代码。
指尖改变世界
2018/08/31
2.4K0
vue.js之组件篇
vue.js组件间通信
组件间需要能相互通信才价值,通信包括数据的传递,方法的调用。这样才能将不同组件结合起来搭建页面
章鱼喵
2018/08/02
1.9K0
vue.js组件间通信
Vue.js 组件编码规范
始终基于模块的方式来构建你的 app,每一个子模块只做一件事情。Vue.js 的设计初衷就是帮助开发者更好的开发界面模块。一个模块是应用程序中独立的一个部分。
孙叫兽
2022/05/17
16.2K0
Vue.js 组件编码规范
本规范提供了一种统一的编码规范来编写 Vue.js 代码。这使得代码具有如下的特性:
图难于其易
2020/04/07
6.5K0
Vue.js 组件编码规范
前端基础-Vue.js组件
https://cn.vuejs.org/v2/guide/components.html
cwl_java
2020/03/26
1.7K0
VUE 入门基础(3)
三,模板语法   Vue将模板编译成虚拟DOM渲染函数,结合响应系统,在应用状态改变时,vue能够智能地计算出重新渲染组件的最小代价并DOM操作上。   插值,文本     数据绑定常见的形式就是使用“Mustache”语法(双大括号)的文本插值:       <span>Message:{{ msg }}</span>     通过使用v-once 指令执行一次性的插入值,当数据改变时,插值处的内容不会更新,会影响到该节点上的所有数据绑定。       <span v-once>This will nev
用户1197315
2018/01/22
1.3K0
Vue.js前端开发快速入门与专业应用
1.一个Vue实例相当于一个MVVM模式中的ViewModel,在实例化的时候,我们可以传入一个选项对象,包含数据、模板、挂载元素、方法、生命周期勾子等选项
硬核项目经理
2019/08/06
2.9K0
vue.js 定义全局组件和局部组件的方法
组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。我们经常会自定义很多组件以满足我们不同的需求。
honey缘木鱼
2019/02/21
3.8K0
如何使用Vue.js渲染JSON中定义的动态组件
json数据content里边有个body数组,每个元素中都有一个component的字段,这个字段决定了使用哪个组件去渲染。
前端知否
2020/03/23
7.8K0
如何使用Vue.js渲染JSON中定义的动态组件
cssjshtml vue.js 组件嵌套demo
components/Users.vue <template> <div class="users"> <h1>hello users</h1> <ul> <li v-for="user in users" v-on:click="user.show=!user.show"> <h2>{{user.name}}</h2> <h3 v-show="user.show">{{user.position}}</h3> </li
葫芦
2019/04/17
2K0

相似问题

Vue.js v-用于不呈现组件

11

Vue.js v-表上的组件

21

Vue.js组件不会呈现

22

重新呈现Vue.js组件

12

条件呈现组件vue.js

127
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档